我如何限制退货数量?
myModel.find({}, function(err, items){ console.log(items.length); // big number });
如何限制返回的项目只能插入最近的10个项目?
在最新的mongoose中(3.8.1在编写本文时),你做了两件事:(1)必须将单个parameter passing给sort(),它必须是一个约束数组或者只有一个约束, )execFind()不见了,用exec()代替。 因此,用mongoose3.8.1你可以这样做:
var q = models.Post.find({published: true}).sort({'date': -1}).limit(20); q.exec(function(err, posts) { // `posts` will be of length 20 });
或者你可以像这样链接在一起:
models.Post .find({published: true}) .sort({'date': -1}) .limit(20) .exec(function(err, posts) { // `posts` will be of length 20 });
像这样,使用.limit():
var q = models.Post.find({published: true}).sort('date', -1).limit(20); q.execFind(function(err, posts) { // `posts` will be of length 20 });
出于某种原因,我无法得到这个build议的答案,但我发现另一种变化,使用select,这对我有效:
models.Post.find().sort('-date').limit(10).select('published').exec(function(e, data){ ... });
api可能已经改变了吗? 我正在使用版本3.8.19
models.Post.find({published: true},{date: 1}, {sort{'date': -1}, limit: 20}, function(err, posts) { // `posts` with sorted length of 20 });
…另外确保使用:
mongoose.Promise = Promise;
这为猫本身的承诺奠定了mongoose的承诺。 没有这个补充,我得到了:
DeprecationWarning:Mongoose:mpromise(mongoose的默认承诺库)已被弃用,插入自己的承诺库,而不是: http ://mongoosejs.com/docs/promises.html