【发布时间】:2017-04-06 23:12:55
【问题描述】:
我正在定义一个像这样的猫鼬模式
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 的情况下找到所有匹配的“帖子”? (不是 postId 的)
例如,如果我的 accountId 是 583509e12052c7a2a93c4026,我需要找到 Post._id=5835096d63efc04da96eb71d 和 Post._id=583509e12052c7a2a93c4026 的帖子
我应该运行什么查询来获取匹配的帖子?
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query