MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment récupérer l'élément suivant et précédent de l'élément actuel avec Mongoose

Supposons donc que vous ayez un schéma comme celui-ci :

{
 _id,
 text    
}

Je suppose que _id est mongo ObjectId, donc il contient la date de publication et je peux trier dessus

Considérons que j'ai ouvert le message actuel avec un identifiant égal à ObjectId( "43cc63093475061e3d95369d") (au lieu de cela, j'utiliserai curId ) et j'ai besoin de connaître le suivant et le précédent. Considérons également que nous devons obtenir tous les articles un par un, classés par date de création décroissante :

Obtenez le prochain post que vous pouvez aimer :

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

Obtenez le message précédent, vous pouvez aimer ceci :

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

Peu de choses :

  1. Si vous n'utilisez pas mongodb ObjectId le code ci-dessus ne fonctionnera pas pour vous, mais vous pouvez toujours utiliser postDate au lieu de l'identifiant et de la publication actuelle postDate au lieu de curId .
  2. Faites attention à l'ordre lorsque vous obtenez les messages suivants/précédents, pour récupérer le message suivant, vous devez trier l'asc, pour récupérer le message précédent, vous devez trier la description.
  3. Je ne suis pas familier avec la mangouste, donc les scripts ci-dessus sont des scripts shell mongodb.