sql >> データベース >  >> NoSQL >> MongoDB

mongodbアグリゲーションで別のドキュメントのアイテムをカウントする

    多くの方法があります

    • $match 不要なデータを排除する
    • $lookup コレクションに参加するには
    • $unwind 配列を分解するには
    • $group 配列と$sumを再構築します $condを使用して1つ増やすのに役立ちます 状態

    これがスクリプトです

    db.Accounts.aggregate([
      { $match: { _id: 2 } },
      {
        $lookup: {
          from: "Responses",
          localField: "_id",
          foreignField: "accountId",
          as: "responses"
        }
      },
      {
        $unwind: "$responses"
      },
      {
        $group: {
          _id: "$_id",
          name: { $first: "$name" },
          trueResponses: {
            $sum: {
              $cond: [{ $eq: [ "$responses.res", true]},1,0]
            }
          },
          falseResponses: {
            $sum: {
              $cond: [{ $eq: [ "$responses.res", false]},1,0]
            }
          }
        }
      }
    ])
    

    作業中Mongo遊び場




    1. PythonでMongoDBAtlas認証に失敗しました

    2. $textクエリに必要なテキストインデックス

    3. MongoDBで内部結合を行う方法は?

    4. Mongooseスキーマで配列サイズの制限を設定する方法