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

Agregasi Mongodb :Cara mengembalikan hanya elemen array yang cocok

Anda bisa melakukan ini dengan kerangka kerja agregasi 2.2. Sesuatu seperti ini;

db.books.runCommand("aggregate", {
    pipeline: [
        {   // find docs that contain Par*
            $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
        },
        {   // create a doc with a single array elemm for each indexToken entry
            $unwind: "$indexTokens" 
        },
        {   // now produce a list of index tokens
            $group: {
                _id: "$indexTokens",
            },
        },
    ],
})

Atau ini mungkin lebih dekat dengan apa yang Anda cari jika Anda benar-benar menginginkan array tanpa dokumen;

db.books.runCommand("aggregate", {
    pipeline: [
        {   // find docs that contain Par*
            $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
        },
        {   // create a doc with a single array elemm for each indexToken entry
            $unwind: "$indexTokens" 
        },
        {   // now throw out any unwind's that DON'T contain Par*
            $match: { "indexTokens": { "$regex": "^Par", "$options": "i" } },
        },
        {   // now produce the list of index tokens
            $group: {
                _id: null,
                indexTokens: { $push: "$indexTokens" },
            },
        },
    ],
})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hitung jumlah objek bersarang dengan C#

  2. kasus uji junit menggunakan embed mongodb de.flapdoodle.embed.mongo

  3. Mongoimport untuk menggabungkan/menambahkan bidang

  4. Arsitektur untuk banyak data logging, DB atau file?

  5. Mongo Memberikan 'kesalahan kunci duplikat' pada bidang yang tidak unik