CNode

mongoose Model.find() skip与sort的命令失败。

问答
AAngelaDuoduo发布于12 年前最后回复12 年前9 回复12221 浏览0 收藏

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

Y
yuedun#1·12 年前

应该是XXX.find({skip: 0, limit: 20, sort:{ "-createtime":1}, function() {...});

A
AngelaDuoduo#2·12 年前
引用 yuedun应该是XXX.find({skip: 0, limit: 20, sort:{ " createtime":1}, function() {...});

@hpgt 是skip, limit, sort在一个大括号中吗? 试了下不行,只有skip和limit也是失败的。

J
jiangli373#3·12 年前
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>
A
AngelaDuoduo#4·12 年前
A
alsotang#5·12 年前
引用 yuedun应该是XXX.find({skip: 0, limit: 20, sort:{ " createtime":1}, function() {...});

@hpgt 错的。第一个参数是 query,不是 options

T
TossShinHwa#6·12 年前

我一般很少这么写, 还是喜欢链式调用.

XXX.find().skip(0).limit(20).sort({"-createtime":1}).exec(function(){...})

Y
yuedun#7·12 年前
引用 alsotang@hpgt 错的。第一个参数是 query,不是 options

@alsotang 嗯,是的,我是直接复制下来改的

1
119786155#8·12 年前

..... if(....) where = ....; if(....) where = ....; var query = Test.find(where).skip(skip).limit(limit).sort(sort); query.exec(cb); ......

A
airyland#9·12 年前

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

参与回复
登录后即可参与回复。登录