sql >> Databasteknik >  >> NoSQL >> MongoDB

Användning av $unwind och $text i aggregeringsramverket mongodb

Svaret nedan kommer att returnera dina önskade resultat. den första $match används endast för att filtrera dokument utan cat i den överhuvudtaget, med hjälp av text index. Om du inte använder det här steget blir resultaten desamma och korrekta men kan vara långsammare.

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. HDFS Data Block – Lär dig det interna i Big Data Hadoop

  2. Hur man får det senaste meddelandet från chattkonversation i mongodb

  3. Skapa en numrerad lista för meteordata

  4. rekommenderat sätt att installera mongodb på elastisk bönstjälk