반응형
MongoDB collection.find()에 대한 콜백을 받는 방법
실행할 때collection.find()
MongoDB/Node/Express에서 완료되면 콜백을 받고 싶습니다.이것에 대한 올바른 구문은 무엇입니까?
function (id,callback) {
var o_id = new BSON.ObjectID(id);
db.open(function(err,db){
db.collection('users',function(err,collection){
collection.find({'_id':o_id},function(err,results){ //What's the correct callback synatax here?
db.close();
callback(results);
}) //find
}) //collection
}); //open
}
그게 올바른 콜백 구문이지만, 무엇이find
는 문서 배열이 아닌 콜백을 제공합니다.따라서 콜백으로 결과를 문서 배열로 제공하려면 커서를 호출하여 결과를 반환합니다.
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
함수의 콜백은 여전히 다음을 제공해야 합니다.err
호출자가 쿼리가 작동했는지 여부를 알 수 있도록 매개 변수를 지정합니다.
2.x 드라이버 업데이트
find
이제는 콜백을 통해 커서를 제공하는 대신 커서를 반환하므로 일반적인 사용 방법은 다음과 같이 단순화할 수 있습니다.
collection.find({'_id': o_id}).toArray(function(err, results) {...});
또는 단일 문서가 필요한 경우에는 다음과 같이 사용하는 것이 더 간단합니다.
collection.findOne({'_id': o_id}, function(err, result) {...});
조니에 기반으로HK 답변 저는 단순히 제 통화를 db.open() 메서드 안에 포장했고 작동했습니다.고마워요 @Johnny홍콩의
app.get('/answers', function (req, res){
db.open(function(err,db){ // <------everything wrapped inside this function
db.collection('answer', function(err, collection) {
collection.find().toArray(function(err, items) {
console.log(items);
res.send(items);
});
});
});
});
그것이 예시로 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/11661545/how-to-get-a-callback-on-mongodb-collection-find
반응형
'programing' 카테고리의 다른 글
새 리포지토리에 대해 https가 아닌 ssh로 기본 설정하려면 어떻게 해야 합니까? (0) | 2023.05.13 |
---|---|
[Serializable]이란 무엇이며 언제 사용해야 합니까? (0) | 2023.05.13 |
일부 문자열로 접히는 hrefend 선택 (0) | 2023.05.13 |
Windows에서 지정된 문자열이 올바른 파일 이름인지 확인하는 방법은 무엇입니까? (0) | 2023.05.13 |
코드가 DEBUG/릴리스 빌드에서 실행 중인지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.05.13 |