0
mongo.connect(mongostr, {}, function(error, db){ 
    var mycoll = db.collection("newuser"); 
    mycoll.find({'userID':12345}, 
                {'userID':true}, 
                function(err, value) {
                    console.log(value);
                }); 
});

我已经向 mongoDB 添加了一个测试集合,我知道它就在那里。我知道确切的查询返回我想要的事实(我自己在 mongoHQ 面板中测试过)。mongo 对象工作正常。不幸的是,文档没有示例,所以我看不出我做错了什么。

当查询运行时,我得到 db 对象的控制台转储:

 { db:     { databaseName: 'appxxxxxxx',
      serverConfig: 
       { host: 'staff.mongohq.com',
         port: 10096,
         options: {},
         internalMaster: true,
         connected: true,
         poolSize: 1,
         ssl: false,
         slaveOk: undefined,
4

1 回答 1

1

db.collection 是一个异步调用。您正在以同步方式访问它。

var mycoll = db.collection("newuser");

试试这个:

mongo.connect(mongostr, {}, function(error, db){ 
    var mycoll = db.collection("newuser", function(err,collection){
             collection.find({'userID':12345}, 
                {'userID':true}, 
                function(err, value) {
                    console.log(value);
                }); 
    });
});
于 2012-07-15T05:01:08.700 回答