我知道如何使用相关的
获取数据var UserSchema = new Schema({
username: String
});
var PostSchema = new Schema({
title: String,
author: {type: Schema.Types.ObjectId, ref: 'User'}
});
...
Post.findOne({_id: id})
.populate('author')
.exec(function(error, result) {
// do stuff
})
但如何做相反的事情?
我的意思是当我想要一个用户,所有帖子都有单个查询?
答案 0 :(得分:0)
尝试在查询返回后添加过滤器步骤,手动过滤掉没有符合填充条件的帖子的文档:
var username = "foo";
Post.find()
.populate('author', null, {username: username})
.sort({'_id': 1})
.exec(function (err, posts) {
posts = posts.filter(function(post){
return post.author.length;
});
res.send(posts);
});