这是我使用的查询: -
var retrieveQuery = function(callback){
Product.find(qry).skip((pageNumber-1)*12).sort({sortby: -1}).limit(12).exec(function(err, doc){
if(err){ callback(err, null) }
else{
callback(null, doc);
}
});
};
此处qry
为let qry=JSON.parse(decodeURIComponent(req.params.query));
我发送的网址为/p3nhv/%7B %7D/lastEdit/1
,表示/:token/:query/:sortby/:page
得到的结果是未分类的,
的疑惑:
这是我的mongo数据: -
{
"_id": {
"$oid": "5a71eb6339add500269e4be1"
},
"editTime": {
"$date": "2018-01-31T16:14:27.000Z"
},
"userName": "Toshik Verma",
"userId": {
"$oid": "5a0def6859465800269e9b5e"
},
"city": {
"$oid": "5a0969adca18d8fd03d57d2c"
},
"college": {
"$oid": "5a0969adca18d8fd03d57d2c"
},
"lastEdit": {
"$date": "2018-01-31T16:14:27.605Z"
},
"productDescription": "test test test test test test test test test test test test test test test test ",
"pageView": 0,
"time": {
"$date": "2018-01-31T16:14:27.605Z"
},
"__v": 0
}
按lastEdit
排序不知道我做了什么错误似乎很好,任何帮助都会很棒,谢谢
答案 0 :(得分:2)
排序将在应用skip
和limit
之前进行,但您当前正在按名为“sortby”的(不存在的)字段排序,而不是字段名称 sortby
中包含。
改为使用计算属性语法:
.sort({[sortby]: -1})
或者使用Mongoose支持的基于字符串的备用排序语法:
.sort('-' + sortby)
答案 1 :(得分:1)
我们将这些约束(跳过,排序,限制)应用于游标的顺序无关紧要MongoDB将始终排序第一,跳过第二个并限制第三个以便跳过限制和排序或我应该在节点js驱动程序中说排序跳过和限制。因此,您 限制 滑雪 数据集,您将 跳过 您的 订购 数据集。
Here这是一篇非常好的文章。
是整理数据还是我要检索的唯一特定数据集?
答:整个数据
跳过包含在sort?
中的数据集
答:是的