MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kueri MongoDB dengan elemMatch untuk data array bersarang

Permintaan Anda hanya mengembalikan semua dokumen yang berisi modules elemen di mana name == 'foo' . Untuk menggunakan $elemMatch untuk memfilter output, Anda perlu menggunakannya dalam argumen proyeksi find panggil alih-alih bagian dari kueri:

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

Untuk menggabungkan kedua konsep, Anda dapat mereferensikan indeks elemen array yang cocok dengan kueri dengan $ :

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

Cara mana pun akan kembali:

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

Jika Anda memerlukan bidang lain yang disertakan dalam output, tambahkan bidang tersebut ke objek proyeksi (mis. name: 1 ).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 5 Manfaat Teratas dari Hosting Bersama MongoDB

  2. MongoDB $sampel

  3. Hapus bidang dari semua elemen dalam array di mongodb

  4. Pemantauan MongoDB Proaktif (Sudut Pengembang Studio/Penasihat)

  5. Buat Indeks Multikey di MongoDB