Mongoose를 사용하여 특정 특성을 가진 문서의 수를 얻으 려하고 어떤 이유로 인해 변수를 사용하면 올바른 값을 반환하지 않습니다. 속성 이름에 대한 루프. 예를 들어, 아래 코드는 그 자체로 잘 작동합니다 :몽구스 쿼리에서 특성 이름에 대한 변수를 사용하여 올바른 결과를 반환하지 않음
Artist.count({lyric_soprano: true}, function(err, count) {
console.log(count); // 17
});
내가 지금처럼, 루프 내에서 속성 이름을 입력 할 때 그것은 또한 작동합니다
var voices = ["lyric_soprano"];
async.map(voices, function(voiceType, callback) {
console.log(voiceType); // "lyric_soprano"
console.log(typeof voiceType); // String
console.log(voiceType == "lyric_soprano"); // true
Artist.count({lyric_soprano: true}, function(err, count) {
console.log(count); // 17
callback(null, count);
});
}, function(err, results) {
console.log(results); // [[17]]
});
을하지만, 실제로 사용할 때 훨씬 큰 목소리 유형으로이 작업을 수행해야하므로 애트리뷰트 이름의 반복자 변수가 올바른 답을주지 못한다. , 자바 스크립트에서의 키 값 쌍과 Object
를 만들 때, 때문에
var query = {};
query[voiceType] = true;
Artist.count(query, function(err, count) {...}
이
이 필요하며, 같은Artist.count({voiceType: true}, function(err, count) {...}
:
var voices = ["lyric_soprano"];
async.map(voices, function(voiceType, callback) {
console.log(voiceType); // "lyric_soprano"
console.log(typeof voiceType); // String
console.log(voiceType == "lyric_soprano"); // true
Artist.count({voiceType: true}, function(err, count) {
console.log(count); // 0
callback(null, count);
});
}, function(err, results) {
console.log(results); // [[0]]
});
아래 답변을 참조하십시오. 도움이된다면 답장의 왼쪽에있는 체크 표시를 클릭하여 친절하게 승인하거나 upvote하십시오. – BatScream