db.collection.find()忽略查询条件

时间:2015-06-23 03:04:55

标签: node.js mongodb

我有以下与mongo交互的node.js代码:

var lowrange = 1;
var collection = db.get('postings');
collection.find({},{postid: { $gt: lowrange }, limit: 10, sort: {_id: -1}},function(e,docs){
    res.json(docs);
});

我使用它来通过json响应列出集合'postss'的内容。限制:10和排序标准按预期工作。 postid:{$ gt:lowrange}部分似乎被忽略了。 换句话说,我得到了所有记录,甚至是那些低于var lowrange的记录。这是为什么?

编辑:

那么正确的语法是什么?这不会产生任何结果(我向你保证,有一个帖子ID大于1的文件):

collection.find({postid: { $gt: 1 }}, function(e,docs){
    res.json(docs);
});

当你有一个函数作为查找的参数时,你如何使用限制/排序?以下错误:

collection.find({postid: { $gt: 1 }}, function(e,docs){
    res.json(docs);
}).limit(10).sort( {_id: -1});

1 个答案:

答案 0 :(得分:3)

find的第一个参数是查询文档。你的是空的({})。

事实上,由于limitsort为字段名称,我不确定您在哪里看到该语法。

请参阅Read Operations Overview