sql >> Database >  >> NoSQL >> MongoDB

Gebruik van $unwind en $text in aggregatieframework mongodb

Het onderstaande antwoord zal de gewenste resultaten opleveren. de eerste $match wordt alleen gebruikt om documenten te filteren zonder cat er helemaal in, met behulp van de text inhoudsopgave. Als u deze fase niet gebruikt, zijn de resultaten hetzelfde en correct, maar mogelijk langzamer.

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. Zoek en tel elementen van verzameling met Mongoose

  2. mangoest update:$inc werkt niet in upsert

  3. E-Commerce API gemaakt met Node-Js,Typescript,PostgreSQL,Redis en Kafka

  4. Selecteer Groeperen op aantal en verschillende tellingen in dezelfde mongodb-query