sql >> Database >  >> NoSQL >> MongoDB

Het volgende en vorige item van het huidige ophalen met Mongoose

Dus stel dat je een schema hebt zoals dit:

{
 _id,
 text    
}

Ik veronderstel dat _id mongo ObjectId is, dus we bevatten de postdatum en ik kan erop sorteren

Laten we aannemen dat ik het huidige bericht heb geopend met een id gelijk aan ObjectId( "43cc63093475061e3d95369d") (in plaats hiervan gebruik ik curId ) en ik moet de volgende en de vorige weten. Laten we er ook rekening mee houden dat we alle berichten één voor één moeten krijgen, gerangschikt op aanmaakdatum, aflopend:

Ontvang het volgende bericht, je kunt dit leuk vinden:

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

Krijg vorige post die je kunt liken:

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

Paar dingen:

  1. Als u mongodb ObjectId niet gebruikt bovenstaande code werkt niet voor u, maar u kunt nog steeds postDate gebruiken in plaats van id en huidige post postDate in plaats van curId .
  2. Let op de volgorde bij het ophalen van volgende/vorige berichten, om het volgende bericht op te halen moet u oplopend sorteren, om vorig bericht op te halen moet u sorteren op desc.
  3. Ik ben niet bekend met mangoest, dus bovenstaande scripts zijn mongodb shell-scripts.


  1. mongomapper-associatie slaat duplicaten over

  2. Mongodb update beperkt aantal documenten

  3. Hoe kan ik detecteren of een mongodb-serializer al is geregistreerd?

  4. MongoDB + Web App:Database per gebruiker