我正在定义一份像这样的mongoose架构
var accountPostSchema = new mongoose.Schema({
account: {
id: { type: mongoose.Schema.Types.ObjectId, ref: 'Account' }
},
post: {
id: { type: mongoose.Schema.Types.ObjectId, ref: 'Post' }
}
});
app.db.model('AccountPost', accountPostSchema);
当用户(账户持有者)创建一个帖子时,我会将该帖子保存在“Post”模式中,并获取“postId”。然后,我会像这样将“postId”和“accountId”保存在上述的“accountPostSchema”中。
var fieldsToSet = {
post: {
id: postId
},
account: {
id: accountId
}
};
db.models.AccountPost.create(fieldsToSet, function(err, accountPost) {
if (err) {
// handle error
}
// handle success
});
在输入了几个postId和accountId之后,我在mongo shell中看到了以下结果。
> db.accountposts.find({})
{ "_id" : ObjectId("5835096d63efc04da96eb71e"), "post" : { "id" : ObjectId("5835096d63efc04da96eb71d") }, "account" : { "id" : ObjectId("5833c920c868d7264111da69") }, "__v" : 0 }
{ "_id" : ObjectId("583509e12052c7a2a93c4027"), "post" : { "id" : ObjectId("583509e12052c7a2a93c4026") }, "account" : { "id" : ObjectId("5833c920c868d7264111da69") }, "__v" : 0 }
现在我该如何根据accountId查找所有匹配的“Posts”?(不是postId)
例如,如果accountId为583509e12052c7a2a93c4026,则需要查找Post._id = 5835096d63efc04da96eb71d和Post._id = 583509e12052c7a2a93c4026的帖子。
我应该运行什么查询以获取匹配的帖子?