Comment limiter le nombre d’articles retournés?

myModel.find({}, function(err, items){ console.log(items.length); // big number }); 

Comment limiter les articles retournés aux 10 derniers éléments insérés?

Dans la dernière version (3.8.1 au moment de la rédaction), vous faites deux choses différemment: (1) vous devez passer un seul argument à sort (), qui doit être un tableau de contraintes ou une seule contrainte, et (2) ) execFind () est parti et remplacé par exec () à la place. Par conséquent, avec la mongoose 3.8.1, vous feriez ceci:

 var q = models.Post.find({published: true}).sort({'date': -1}).limit(20); q.exec(function(err, posts) { // `posts` will be of length 20 }); 

ou vous pouvez l’enchaîner simplement comme ça:

 models.Post .find({published: true}) .sort({'date': -1}) .limit(20) .exec(function(err, posts) { // `posts` will be of length 20 }); 

Comme ça, en utilisant .limit ():

 var q = models.Post.find({published: true}).sort('date', -1).limit(20); q.execFind(function(err, posts) { // `posts` will be of length 20 }); 
 models.Post.find({published: true},{date: 1}, {sort{'date': -1}, limit: 20}, function(err, posts) { // `posts` with sorted length of 20 }); 

Pour une raison quelconque, je ne pouvais pas obtenir cela avec les réponses proposées, mais j’ai trouvé une autre variante, en utilisant select, qui a fonctionné pour moi:

 models.Post.find().sort('-date').limit(10).select('published').exec(function(e, data){ ... }); 

L’api a peut-être changé? J’utilise la version 3.8.19

… en plus, assurez-vous d’utiliser:

 mongoose.Promise = Promise; 

Cela place la promesse de mango à la promesse ES6 native. Sans cet ajout, j’ai:

DeprecationWarning: Mongoose: mpromise (la bibliothèque de promesses par défaut de mongoose) est obsolète, twigz votre propre bibliothèque de promesses à la place: http://mongoosejs.com/docs/promises.html