mongoose Model.find() skip与sort的命令失败。 - CNode技术社区

mongoose Model.find() skip与sort的命令失败。
发布于 11 年前 作者 AngelaDuoduo 11988 次浏览 最后一次编辑是 9 年前 来自 问答

仿照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。

9 回复

应该是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); ...

我想说,多看官方文档呀。。

回到顶部

AltStyle によって変換されたページ (->オリジナル) /