Node.js / MongoDB限制返回更多记录

时间:2015-06-11 15:40:13

标签: node.js mongodb

我搜索过,但找不到任何答案。虽然不规则性不是问题,但我对其发生的原因更为好奇。

当我针对具有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

1 个答案:

答案 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();