sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan henter du næste og forrige element af den nuværende med Mongoose

Så lad os antage, at du har et skema som dette:

{
 _id,
 text    
}

Jeg formoder, at _id er mongo ObjectId, så vi det indeholder postdato, og jeg kan sortere på det

Lad os overveje, at jeg har åbnet nuværende indlæg med id lig med ObjectId( "43cc63093475061e3d95369d") (i stedet for dette vil jeg bruge curId ) og jeg har brug for at kende næste og forrige. Lad os også overveje, at vi skal få alle indlæg én efter én sorteret efter oprettelsesdatoen faldende:

Få næste indlæg, du kan lide dette:

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

Få tidligere indlæg, du kan lide dette:

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

Et par ting:

  1. Hvis du ikke bruger mongodb ObjectId ovenstående kode fungerer ikke for dig, men du kan stadig bruge postDate i stedet for id og aktuel postDate i stedet for curId .
  2. Vær opmærksom på rækkefølgen, når du får næste/forrige indlæg, for at hente næste indlæg skal du sortere asc, for at hente forrige indlæg skal du sortere beskrivelse.
  3. Jeg er ikke bekendt med mongoose, så ovenstående scripts er mongodb shell scripts.


  1. MongoDB GeoJSON Kan ikke udtrække geonøgler fra objekt, misformet geometri? ved indsættelse af type Polygon

  2. Analyser ydeevnen af ​​en forespørgsel - mongoDB

  3. Indsæt data i MongoDB ved hjælp af PHP

  4. Hvordan bruger man mongoDB med Solr?