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

Bagaimana cara mengambil semua elemen yang cocok yang ada di dalam array di Mongo DB?

Seperti yang dikatakan JohnnyHK, jawabannya di MongoDB:pilih elemen yang cocok dari subkoleksi menjelaskannya dengan baik.

Dalam kasus Anda, agregat akan terlihat seperti ini:

(catatan:pertandingan pertama tidak sepenuhnya diperlukan, tetapi membantu dalam hal kinerja (dapat menggunakan indeks) dan penggunaan memori ($bersantai pada set terbatas)

> db.xx.aggregate([
...      // find the relevant documents in the collection
...      // uses index, if defined on documents.x
...      { $match: { documents: { $elemMatch: { "x": 1 } } } }, 
...      // flatten array documennts
...      { $unwind : "$documents" },
...      // match for elements, "documents" is no longer an array
...      { $match: { "documents.x" : 1 } },
...      // re-create documents array
...      { $group : { _id : "$_id", documents : { $addToSet : "$documents" } }}
... ]);
{
    "result" : [
        {
            "_id" : ObjectId("515e2e6657a0887a97cc8d1a"),
            "documents" : [
                {
                    "x" : 1,
                    "y" : 3
                },
                {
                    "x" : 1,
                    "y" : 2
                }
            ]
        }
    ],
    "ok" : 1
}

Untuk informasi lebih lanjut tentang agregat(), lihat http://docs.mongodb.org/manual /aplikasi/agregasi/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bisakah saya menjalankan kueri MongoDB mentah di driver node-mongodb-native?

  2. Mencoba mendapatkan daftar koleksi dari luwak

  3. Apakah mungkin untuk mendapatkan sepotong irisan di Mongo?

  4. Bagaimana cara kerja penyortiran di ekstensi PECL mongodb baru?

  5. Menggunakan MongoDB, Express, Node.Js dan GridFS-stream untuk menyimpan file video dan gambar