Mongodb查询耗时太长

时间:2016-03-03 09:40:36

标签: javascript mongodb query-optimization

我试图掌握Mongodb,现在,我有一个非常小的集合,只有几百条记录,我希望将来动态更新某些字段JavaScript的。但是,虽然现在文档太少,但下面的查询和更新至少需要24秒。我不认为一旦我们投入生产并且需要更新大量文档,它对我有用。任何人都可以帮我解决下面的代码有什么问题?

提前致谢

var d = new Date();
var sapm = 1.8;
i = 0;
db.getCollection('content').find().forEach(function(x) {

    var window = (d - x.updated_at) / (24 * 60 * 60 * 1000);
    var feed = db.content.find({}, {
        _id: x._id
    });
    var comment = x.total_comment || 0;
    var up = x.total_up || 0;
    var interaction = up + (comment / 2);
    var hourage = (d - (x.updated_at));
    var rank = interaction / Math.pow((hourage - 4) * sapm);

    if (window <= 15) {
        db.content.update({
            '_id': x._id
        }, {

            $set: {
                "rank": rank,
            }
        }, {
            multi: true
        });
    }
});

1 个答案:

答案 0 :(得分:0)

您的查询速度很快,而且需要花时间单独更新每个文档。

您应该将所有文档推送到数组中,然后使用类似async.js的内容来并行保存/更新。