MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Użycie $unwind i $text w ramach agregacji mongodb

Poniższa odpowiedź zwróci pożądane wyniki. pierwszy $match służy tylko do filtrowania dokumentów bez cat w ogóle, za pomocą text indeks. Jeśli nie użyjesz tego etapu, wyniki będą takie same i poprawne, ale mogą być wolniejsze.

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. Jak używać $regex w zapytaniu agregującym mongodb w $match

  2. Dlaczego nie zaleca się używania funkcji przechowywanych po stronie serwera w MongoDB?

  3. Wyszukaj i posortuj kolekcję zagraniczną

  4. Grupa Mongodb i operatorzy projektów

  5. Dekodowanie dzienników błędów MongoDB