Mongo集合锁定在nodejs中

时间:2016-05-13 07:35:59

标签: node.js mongodb locking

在Nodejs中如何锁定mongodb集合以进行查询和更新,然后释放锁定。

我的文件将是这样的。 { _id:1, "a" : 1, "b" : 2, "x1" : 0.5 }

这是我的代码

lockCollectionUntilCompleteThisFunction(db, 2, "col1", function () {
});

function lockCollectionUntilCompleteThisFunction(db, n, col, callback) {
    db.collection(col).findOne({x1: 1}, function (err, doc) {
        if (!err) {
            var a = doc.a;
            var b = doc.b + n;
            var x1 = a / b;
            var updateDoc = {
                b: b,
                x1: x1
            }
            db.collection(col).updateOne({_id: doc._id}, {$set: updateDoc}, function (err) {
                if (!error) {
                    callback(null);
                }
                else {
                    callback(err)
                }
            });
        }
        else {
            callback(err);
        }
    });
}

所以,我需要的是在执行这个函数时它应该锁定集合。我怎样才能做到这一点。

0 个答案:

没有答案