我如何通过回调访问nodejs中的mongodb计数结果?

问题描述 投票:2回答:3

您如何在nodejs中访问mongodb count结果,以便异步请求可以访问该结果?我可以获取结果并更新数据库,但是异步请求无法访问var或var为空,并且在发出下一个异步请求时var似乎已更新。该请求必须不等待查询结束,并且下一个请求将填充前一个请求的变量。]​​>

testOne.increment = function(request) {   
    var MongoClient = require('mongodb').MongoClient,
        format = require('util').format;
    MongoClient.connect('mongodb://127.0.0.1:27017/bbb_tracking', function(err, db) {
    if (err) throw err;
    collection = db.collection('bbb_tio');
        collection.count({vio_domain:dom}, function(err, docs) {
    if (err) throw err;                                     
    if (docs > 0) {
            var vio_val = 3;                                        
        } else {
            var vio_val = 0;                    
        }                   
        if (vio_val === 3) {
                event = "New_Event";
        var inf = 3;
            }                                       
        db.close();

        console.log("docs " + docs);
        });       
   });                    
};

在上面,即使在范围内设置了变量,它们也不是异步定义的。我可以得到一些有关正确构造此结构的指导,以便将var填充到回调中。谢谢!

您如何在nodejs中访问mongodb count结果,以便异步请求可以访问该结果?我可以获得结果并更新数据库,但是异步请求无法访问...

javascript node.js mongodb asynchronous
3个回答
2
投票

由于count函数是异步的,因此您需要将回调传递给increment函数,以便从数据库返回count时,代码可以调用该回调。


0
投票

您可以使用“异步”模块。它使代码更简洁,更易于调试。在以下文章中查看GitHub中adduser.js和deleteuser.js的代码


0
投票

长度为您提供结果数组的数量

© www.soinside.com 2019 - 2024. All rights reserved.