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

Jak zdobyć ostatnie N rekordów w mongodb?

Jeśli rozumiem Twoje pytanie, musisz posortować je w porządku rosnącym.

Zakładając, że masz identyfikator lub pole daty o nazwie „x”, byś zrobił…

.sortuj()

db.foo.find().sort({x:1});

1 posortuje rosnąco (od najstarszego do najnowszego) i -1 posortuje malejąco (od najnowszego do najstarszego).

Jeśli używasz automatycznie utworzonego _id pole ma wbudowaną datę ... więc możesz jej użyć, aby zamówić do ...

db.foo.find().sort({_id:1});

Spowoduje to zwrócenie wszystkich dokumentów posortowanych od najstarszych do najnowszych.

Naturalny porządek

Możesz również użyć wspomnianego wyżej porządku naturalnego...

db.foo.find().sort({$natural:1});

Ponownie, używając 1 lub -1 w zależności od żądanej kolejności.

Użyj .limit()

Wreszcie, dobrą praktyką jest dodanie limitu podczas wykonywania tego rodzaju szeroko otwartego zapytania, aby można było wykonać albo ...

db.foo.find().sort({_id:1}).limit(50);

lub

db.foo.find().sort({$natural:1}).limit(50);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Najlepszy sposób na połączenie z MongoDB za pomocą Node.js

  2. mongodb Failed:błąd łączenia z serwerem db:brak osiągalnych serwerów

  3. MongoDB przez Mongoose JS — Co to jest findByID?

  4. Jak mogę wyłączyć komunikaty dziennika MongoDB w konsoli?

  5. Jaki jest najszybszy sposób skopiowania kolekcji w tej samej bazie danych?