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

Dodaj jakiś numer wiersza do agregującego polecenia / potoku mongodb

Nie jestem pewien co do wydajności w przypadku dużych zapytań, ale jest to przynajmniej opcja.

Możesz dodać swoje wyniki do tablicy poprzez grupowanie/przesuwanie, a następnie rozwijanie za pomocą includeArrayIndex tak:

[
  {$match: {author: {$ne: 1}}},
  {$limit: 10000},
  {$group: {
    _id: 1,
    book: {$push: {title: '$title', author: '$author', copies: '$copies'}}
  }},
  {$unwind: {path: '$book', includeArrayIndex: 'rownum'}},
  {$project: {
    author: '$book.author',
    title: '$book.title',
    copies: '$book.copies',
    rownum: 1
  }}
]

Teraz, jeśli Twoja baza danych zawiera dużą liczbę rekordów i zamierzasz podzielić się na strony, możesz użyć etapu $skip, a następnie $limit 10 lub 20 lub cokolwiek chcesz wyświetlić na stronie, i po prostu dodaj liczbę z $skip etap do swojego numeru, a uzyskasz rzeczywistą pozycję bez konieczności wciskania wszystkich wyników w celu ich wyliczenia.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Obsługa rozłączeń/ponownych połączeń MongoDB z węzła

  2. Czytnik Mongo C# JSON oczekiwał wartości, ale znalazł „replSetGetStatus”

  3. Atomowość, izolacja i współbieżność w MongoDB

  4. Indeks poddokumentów w mongo

  5. Mongo nie może się uruchomić