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

Znajdowanie kolejnego dokumentu w MongoDb

Najlepiej dodać jawne sort() kryteria, jeśli chcesz przewidywać kolejność wyników.

Zakładając, że zamówienie, którego szukasz, to „zamówienie wstawiania” i używasz domyślnych wygenerowanych identyfikatorów obiektów MongoDB, możesz wykonać zapytanie na podstawie identyfikatora obiektu:

// Find next product created
db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142") }}).limit(1)

Pamiętaj, że ten przykład działa tylko dlatego, że:

  • pierwsze cztery bajty ObjectId są obliczane na podstawie uniksowego znacznika czasu (patrz:Specyfikacja identyfikatora obiektu )
  • zapytanie o _id sam użyje domyślnego _id indeks (posortowany według identyfikatora), aby znaleźć dopasowanie

Tak naprawdę to sortowanie niejawne jest takie samo jak:

db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142" )}}).sort({_id:1}).limit(1);

Jeśli do zapytania dodano więcej kryteriów, aby określić, jak znaleźć „następny” produkt (na przykład category ), zapytanie może użyć innego indeksu, a kolejność może nie być taka, jakiej oczekujesz.

Możesz sprawdzić użycie indeksu za pomocą explain() .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - przykład odniesień ręcznych

  2. Znajdź i policz elementy kolekcji z Mongoose

  3. Jak przechowywać datę i godzinę w Meteor dla zapytań o zasięg?

  4. Sterownik C# Mongo IMongoDatabase RunCommand, aby uzyskać statystyki bazy danych

  5. Policz odrębne pole dokumentu podrzędnego i wypisz jako nazwane klucze