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

ネストされた配列データのelemMatchを使用したMongoDBクエリ

    クエリは、modulesを含むすべてのドキュメントを返すだけです。 name == 'foo'の要素 。 $elemMatchを使用するには 出力をフィルタリングするには、findの射影引数で使用する必要があります クエリの一部の代わりに呼び出す:

    db.test.find({}, {modules: {$elemMatch: {name: 'foo'}}})
    

    両方の概念を組み合わせるために、クエリで一致した配列要素のインデックスを$で参照できます。 :

    db.test.find({modules: {$elemMatch: {name: 'foo'}}}, {'modules.$': 1})
    

    どちらの方法でも戻ります:

    {
      "_id": ObjectId("..."),
      "modules": [
        {
          "name": "foo",
          "mandatory": false,
          "group": [
            {
              "name": "g1"
            }
          ]
        }
      ]
    }
    

    出力に他のフィールドを含める必要がある場合は、それらをプロジェクションオブジェクトに追加します(例:name: 1




    1. connect-redisのセッション数をカウントします

    2. HBase用のJavaガベージコレクションのチューニング

    3. リモートredisサーバーに接続しています

    4. MongoDBについて