0
私はmongooseにカテゴリの投稿を指定して見つけられません。それは常に私にすべての投稿を返す、それはカテゴリ名を指定して投稿をフィルタリングしませんsearchQuery.category私は検索されたカテゴリを渡します。mongoose where where句が正しく機能しないのを発見しました
var query = posts.find();
if (searchQuery.tags) {
searchQuery instanceof Array ?
query.where('tags').in(searchQuery.tags) :
query.where('tags').equals(searchQuery.tags);
}
if (searchQuery.publish) {
query.where('publish').equals(true);
}
if (searchQuery.category) {
query.populate({
path: 'category',
match: { name: searchQuery.category },
model :'Category'
});
}
if (searchQuery.series) {
query.populate({
path: 'series',
match: { name: searchQuery.series }
});
}
return countPost(searchQuery).then(function (count) {
return query.select('title heading tags description blogImage createAt')
.skip(((parseInt(pageNo, 10) || 1) - 1) * parseInt(limit, 10))
.limit(parseInt(limit, 10) || 10)
.exec()
.then(function (posts) {
return { post: posts, total: count, currentPage: pageNo, limit: limit };
});
});
ここで私のコードは、カテゴリを評価しません。
このコードは私に.populate方法が少し異なる動作をフィルタ処理、レコード
query.populate({
path: 'category',
match: { name: searchQuery.category },
model :'Category'
}).exec(function(err, post){ console.log(post)}); // this query return only searchedQuery object.
感謝、.populateを({移入します.. })。exec()はフィルタの結果を返しますが、もし私がpopulateを使ってexecを使用していなければ、それはすべての投稿を返します、なぜですか? –
@AnkitRana exec()を使用して、使用しないで、正確にどのように呼び出すのかを教えてください。そしてあなたが得ている結果は何ですか。 –
@ Antonio私はあなたがこれを見ることができる問題のコードを定義します –