0
我不能填充和找到猫鼬指定的类别帖子。它总是返回我的所有帖子,它不过滤指定类别名称的帖子,在searchQuery.category我传递搜索的类别。猫鼬发现与填充后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 };
});
});
在这里我的代码,它不评估类别。
这个代码给我过滤记录
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()返回过滤结果,但如果我不使用exec来填充,那么它将返回所有帖子,为什么? –
@AnkitRana你可以请你说明你是如何调用它与没有exec()?你会得到什么结果。 –
@ Antonio我定义了有问题的代码,你可以看到这个 –