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

$skip i $limit w ramach agregacji

Ponieważ jest to zapytanie tekstowe, o którym mówimy, najbardziej optymalna forma to:

db.collection.aggregate([
    { 
       "$match": {
               "$text": { "$search": "cake tea" }
    }
    },
    { "$sort": { "score": { "$meta": "textScore" } } },
    { "$limit": skip + limit },
    { "$skip": skip }
])

Uzasadnienie dotyczące rezerwy pamięci z najlepszych wyników „sortowania” będzie działać tylko w ramach własnych „limitów” i nie będzie to optymalne dla niczego poza kilkoma rozsądnymi „stronami” danych.

Poza tym, co jest uzasadnione dla zużycia pamięci, dodatkowy etap prawdopodobnie będzie miał raczej negatywny wpływ niż pozytywny.

To naprawdę są praktyczne ograniczenia możliwości wyszukiwania tekstu dostępnego w MongoDB w obecnej formie. Ale w przypadku czegoś bardziej szczegółowego i wymagającego większej wydajności, tak jak w przypadku wielu „pełnotekstowych” rozwiązań SQL, lepiej skorzystać z zewnętrznego, „specjalnie zaprojektowanego” rozwiązania do wyszukiwania tekstu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak połączyć się z mongodb za pomocą node.js (i uwierzytelnić)?

  2. MongoDB Poprawny schemat dla danych zagregowanych

  3. łączenie się z lokalnym mongodb z kontenera docker

  4. Przewodnik po MongoDB z Javą

  5. Formatowanie ISODate z Mongodb