我搜索过,但找不到任何答案。虽然不规则性不是问题,但我对其发生的原因更为好奇。
当我针对具有100k记录且具有超过100或200的任何数字限制的集合进行相当简单的查找时,下面的代码段中的console.log始终报告返回的更多记录。
var collection = db.collection('mycoll');
collection.find({}).sort({created_date: -1}).limit(500).toArray(function (err, docs) {
if (err) {
throw err;
}
db.close();
console.log(docs.length);
});
限制为500,它会返回590或591,任何想法?
编辑:问题似乎与这段代码有关 - https://github.com/mongodb/node-mongodb-native/blob/2.0/lib/cursor.js#L596
答案 0 :(得分:2)
跳过和限制选项作为find()
方法中的第二个参数包含在内。 (未经测试)
您可以试用以下内容:
collection.find({}, {sort: {created_date: -1}, limit: 500});
修改强>
你能先在asc命令中使用created_date尝试这个(限制)吗?这项工作适用于mongo节点驱动程序1.4
var options = {
"limit": 20,
"sort":"created_date"
};
collection.find({},options).toArray();