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

Jak pobrać następny i poprzedni element bieżącego za pomocą Mongoose?

Załóżmy więc, że masz taki schemat:

{
 _id,
 text    
}

Przypuszczam, że _id to mongo ObjectId, więc zawiera datę publikacji i mogę ją posortować

Rozważmy, że otworzyłem bieżący post z identyfikatorem równym ObjectId( "43cc63093475061e3d95369d") (zamiast tego użyję curId ) i muszę znać następny i poprzedni. Weźmy również pod uwagę, że musimy pobrać wszystkie posty jeden po drugim, uporządkowane według daty utworzenia malejąco:

Pobierz następny post, który może Ci się spodobać:

db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)

Pobierz poprzedni post, który może Ci się spodobać:

db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)

Kilka rzeczy:

  1. Jeśli nie używasz mongodb ObjectId powyższy kod nie zadziała dla Ciebie, ale nadal możesz użyć postDate zamiast identyfikatora i aktualnego postDate zamiast curId .
  2. Zwróć uwagę na kolejność podczas pobierania następnych/poprzednich postów, aby pobrać następny post, musisz sortować asc, aby pobrać poprzedni post, potrzebujesz sortuj opis.
  3. Nie jestem zaznajomiony z mangustą, więc powyższe skrypty to skrypty powłoki mongodb.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 3 sposoby tworzenia indeksu w MongoDB

  2. Czy używanie mongo ObjectId jako identyfikatora użytkownika jest złą praktyką?

  3. Spring data mongo używa OR w zapytaniu

  4. Zapytanie o kolekcję mongodb jako dynamiczną

  5. Zależności Gradle nie działają w IntelliJ