sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man hämtar nästa och föregående objekt av den nuvarande med Mongoose

Så låt anta att du har ett schema så här:

{
 _id,
 text    
}

Jag antar att _id är mongo ObjectId, så vi innehåller postdatum och jag kan sortera på det

Låt oss tänka på att jag har öppnat nuvarande inlägg med id lika med ObjectId( "43cc63093475061e3d95369d") (Istället för detta kommer jag att använda curId ) och jag behöver veta nästa och föregående. Låt oss också tänka på att vi måste få alla inlägg en efter en sorterade efter skapat datum fallande:

Få nästa inlägg du kan gilla så här:

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

Få tidigare inlägg du kan gilla så här:

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

Några saker:

  1. Om du inte använder mongodb ObjectId ovanstående kod fungerar inte för dig, men du kan fortfarande använda postDate istället för id och aktuell postDate istället för curId .
  2. Tänk på ordningen när du får nästa/föregående inlägg, för att hämta nästa inlägg behöver du sortera asc, för att hämta föregående inlägg behöver du sortera beskrivning.
  3. Jag är inte bekant med mongoose, så ovanstående skript är mongodb shell scripts.


  1. Hur man installerar Redis

  2. Uppdatera fält i array mongodb c# drivrutin

  3. Frågar intern arraystorlek i MongoDB

  4. Hur använder man aggregering för MongoDB för att filtrera baserat på $and/$or?