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

Penggunaan $unwind dan $text dalam kerangka agregasi mongodb

Jawaban di bawah ini akan mengembalikan hasil yang Anda inginkan. $match pertama hanya digunakan untuk memfilter dokumen tanpa cat di dalamnya, dengan bantuan text indeks. Jika Anda tidak menggunakan tahap ini, hasilnya akan sama dan benar tetapi mungkin lebih lambat.

db.pages.aggregate([
     {
         $match: {
             $text: {
                 $search: "cat"
             }
         } 
     },
     {
         $unwind: '$articles'
     },
     {
         $match: {
             'articles.articleContent': /cat/
         }
     },
     {
         $group: {
             _id: {
                 _id: '$_id',
                 pageNo: '$pageNo'
             },
             articles: {
                 $push: '$articles'
             }
         }
     },
     {
         $project: {
             _id: '$_id._id',
             pageNo: '$_id.pageNo',
             articles: 1
         }
     }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb memperbarui elemen array terakhir

  2. Transaksi MongoDB Data Musim Semi

  3. Bagaimana cara menemukan mongodb ke item terakhir dari sebuah array?

  4. mengimpor file CSV MongoDB dengan ISODate

  5. Buat agregasi filter di musim semi