sql >> Databáze >  >> NoSQL >> MongoDB

Jak načíst další a předchozí položku aktuálního pomocí Mongoose

Předpokládejme tedy, že máte schéma jako toto:

{
 _id,
 text    
}

Předpokládám, že _id je mongo ObjectId, takže obsahuje datum příspěvku a mohu podle něj třídit

Uvažujme, že jsem otevřel aktuální příspěvek s ID rovným ObjectId( "43cc63093475061e3d95369d") (místo toho použiji curId ) a potřebuji vědět další a předchozí. Uvažujme také, že potřebujeme získat všechny příspěvky jeden po druhém seřazené podle data vytvoření sestupně:

Získejte další příspěvek, kterému můžete dát like:

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

Získejte předchozí příspěvek, který se vám může líbit:

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

Pár věcí:

  1. Pokud nepoužíváte mongodb ObjectId výše uvedený kód vám nebude fungovat, ale stále můžete použít postDate místo id a aktuální post postDate místo curId .
  2. Dejte si pozor na pořadí při získávání dalších/předchozích příspěvků, k načtení dalšího příspěvku potřebujete seřadit vzestupně, k načtení předchozího příspěvku potřebujete seřadit popis.
  3. Neznám mongoose, takže výše uvedené skripty jsou skripty prostředí mongodb.


  1. Jak znovu zobrazit nahrané obrázky na stranu serveru v prohlížeči pomocí MEAN stacku?

  2. Jak funguje redis, aby vám pomohl setrvání v relaci v azurovém okně

  3. Modelování mongodb uložil odkazované vztahy v jádru .net

  4. Jak zachytit výjimku redis.serializer.SerializationException