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

mongodbの親キーを知らなくても特定のネストされたオブジェクトを見つける方法

    $objectToArray を利用できます (mongoDB 3.4.4以降)、 $ filter および$project 次のようなものを取得します:

    db.collection.aggregate([
      {
        $project: {
          obj: {
            $objectToArray: "$info"
          }
        }
      },
      {
        $project: {
          _id: 0,
          obj: {
            $filter: {
              input: "$obj",
              as: "item",
              cond: {
                $eq: [
                  "$$item.v.city",
                  "NY"
                ]
              }
            }
          }
        }
      },
      {
        $project: {
          info: {
            $arrayToObject: "$obj"
          }
        }
      },
    ])
    

    ここで作業中 をご覧いただけます。

    アイデアは、オブジェクトを配列に分割し、それをフィルタリングしてから、その配列をオブジェクトに戻すことです。

    cityでフィルタリングしました しかし、あなたはその考えを理解していると確信しています。




    1. 複数のレコードを持つPyMongoUpdateドキュメント

    2. 特定のタイプの限られた数のレコードを返しますが、他のレコードの数は無制限ですか?

    3. マルチスレッドRails環境でRedisを使用するための最良の方法は何ですか? (プーマ/シデキク)

    4. Redisでused_memoryに燃料を補給する方法は?