MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да извлечете следващ и предишен елемент от текущия с Mongoose

Да предположим, че имате схема като тази:

{
 _id,
 text    
}

Предполагам, че _id е mongo ObjectId, така че съдържа дата на публикуване и мога да сортирам по него

Да приемем, че отворих текущата публикация с id, равен на ObjectId( "43cc63093475061e3d95369d") (вместо това ще използвам curId ) и трябва да знам следващия и предишния. Също така нека помислим, че трябва да получим всички публикации една по една, подредени по дата на създаване в низходящ ред:

Вземете следващата публикация, която можете да харесате:

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

Вземете предишна публикация, която можете да харесате:

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

Няколко неща:

  1. Ако не използвате mongodb ObjectId горният код няма да работи за вас, но все пак можете да използвате postDate вместо id и текуща публикация postDate вместо curId .
  2. Внимавайте за реда, когато получавате следващи/предишни публикации, за да извлечете следващата публикация, трябва да сортирате възходящо, за да извлечете предишна публикация, трябва да сортирате по низходящ.
  3. Не съм запознат с mongoose, така че горните скриптове са шел скриптове на mongodb.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Библиотека JasperReports и MongoDB

  2. Как да инсталирам най-новата версия на mongodb-клиенти на Ubuntu?

  3. Как мога да сортирам и ограничавам с Mongoose

  4. Непряка промяна на претоварено свойство App\Dossier::$program няма ефект

  5. Присвояване на върнатия резултат от mongoose към променливата js на възел