2012-07-15 3 views
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 객체가 잘 동작합니다. 불행히도 docs don't have an example, 그래서 내가 뭘 잘못하고 있는지 알 수 없습니다.이 쿼리가 데이터베이스 개체를 반환하는 이유는 무엇입니까?

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

답변

1

db.collection는 비동기 호출입니다 :

쿼리 내가 DB 객체의 콘솔 덤프를 얻을 실행

. 동기식으로 액세스하고 있습니다.

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); 
       }); 
    }); 
}); 
+1

합니다. 나는 .findOne()에서 스왑하면 왜 db.collection()을 동 기적으로 사용하더라도 작동합니까? –

관련 문제