sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af $unwind og $text i aggregeringsramme mongodb

Nedenstående svar vil returnere dine ønskede resultater. den første $match bruges kun til at filtrere dokumenter uden cat i det overhovedet ved hjælp af text indeks. Hvis du ikke bruger dette trin, vil resultaterne være de samme og korrekte, men kan være langsommere.

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. hvordan man konfigurerer debezium-felter sendt ved opdateringsbegivenheder (mongo-stik)

  2. Mongoose &flyde værdier

  3. mongodb flere dokumenter indsætte eller opdatere med en unik nøgle

  4. Mongolab nodejs topologi ødelagt