节点js竞争条件下的mongodb

时间:2016-07-25 19:24:40

标签: javascript node.js mongodb

我正在使用带有mongodb驱动程序的nodeJs来存储一些数据。

我想在我的js脚本中保存这些数据。

所以...我写了这个小代码:

MongoClient.connect(url, function(err, db) {

    assert.equal(null, err);

    if (err) {
        console.log(err);
    }
    else{

        console.log("Yes");

    }
    var cursor =db.collection('mydb').updateOne( { "name":"id"},
        {$inc: { count: 1 } });
    var x;
    var cursor=db.collection('mydb').find( { "name":"id"} ) ;
    cursor.each(function(err, doc) {
        assert.equal(err, null);
        if (doc != null) {
            x=doc.count;
            console.log(x); //right value
        }  
    }); 
    console.log(x); //undefined

然而,这里有异步并且我没有使用回调,所以会发生的事情是,在数据库完成其业务之前,未定义prtined到控制台日志的x。

所以我的输出是这样的:

Yes
undefined
Connected correctly to server.
140

如何添加回调来解决它(或以任何其他方式解决它?)?

0 个答案:

没有答案