mongodb からドキュメントをクエリしようとしていて、システムがクエリに一致するドキュメントからいくつかのフィールドのみを返すようにしました。最初のクエリに対して以下にリストされている構文を最初に試しましたが、返されませんでした。つまり、コールバックが呼び出されませんでした。
次に、別の構文を試してみたところ、以下に示す 2 番目のクエリから結果を取得できました。最初のクエリが機能しなかった理由を理解したいのですが、構文を誤解しているのでしょうか?
これは mongoose 3.6.8 と mongo 2.4 です
ティア
最初のクエリ
query.find({
category:{
$in: categoryArray
}
,expiration:{$gte: new Date()}
,place:queryVal.destination
}
,'_id expiration url'
,function (err, docs) {
if (err) {
console.log(err);
} else {
console.log('queryJoin returned ' + docs.length + 'entries');
}
}
);
2 番目のクエリ
query.find({
category:{$in: categoryArray}
,expiration:{$gte: new Date()}
,place:queryVal.destination
})
.select({_id:1, expiration:1, url:1})
.exec(function(err, docs) {
console.log('queryJoin returns');
if (err) {
console.log(err);
} else {
console.log('queryJoin returned ' + docs.length + 'entries');
}
});