仿照nodeclude的首页代码想要实现分页功能。调用Model.find(query, callback)操作如下: XXX.find({skip: 0, limit: 20, sort: “-createtime”}, function() {…}); 但是上面这种方式查询的结果为空。 如果query的值是{}, 或者{name: “xiaoming”}这样的按值查询,都没有问题。sort, limit, skip等操作都会有问题,即查询结果为空……求问为什么?!
mongoose的版本是3.8.16, mongodb的版本是2.6。
应该是XXX.find({skip: 0, limit: 20, sort:{ “-createtime”:1}, function() {…});
@hpgt 是skip, limit, sort在一个大括号中吗? 试了下不行,只有skip和limit也是失败的。
XXX.find({},null,{skip: 0, limit: 20, sort:{ "-createtime":1}}, function() {...});
应该是这样吧
Model.find(conditions, [fields], [options], [callback])
Parameters:
conditions <Object>
[fields] <Object> optional fields to select
[options] <Object> optional
[callback] <Function>
@jiangli373 成功了!谢谢!我都没看出api是这个意思……
@hpgt 错的。第一个参数是 query,不是 options
我一般很少这么写, 还是喜欢链式调用.
XXX.find().skip(0).limit(20).sort({"-createtime":1}).exec(function(){…})
@alsotang 嗯,是的,我是直接复制下来改的
… if(…) where = …; if(…) where = …; var query = Test.find(where).skip(skip).limit(limit).sort(sort); query.exec(cb); …
我想说,多看官方文档呀。。