为子项创建查询以使用父项的参数

时间:2017-01-27 21:32:44

标签: node.js mongodb mongoose

你能帮帮我吗? 我搜索了互联网,找不到任何解决方案。 如何为子项创建查询以使用父项的参数?

var Photos = new Schema({
    photo_id: {type: String, required: true},
    photo_path_low: { type: String, required: true }
});

var Users = new Schema({
    user_id: { type: String, required: true },
    count_coins: { type: Number, default: 20 },
    photos_relation: [Photos]
});
...
... some code
...
PhotoModel.findOne().where('parent.count_coins').gt(1)..... // parent for Example

1 个答案:

答案 0 :(得分:1)

对于这种情况,有对象引用:

var Photos = new Schema({
    photo_id: {type: String, required: true},
    photo_path_low: { type: String, required: true }
    createdBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
});

然后,当您进行查询时,可以填充这样的引用:

Photo.findOne({_id: 123})
.populate('createdBy')
.exec(function(err, post) {
    // do stuff with post
});

您可以在this mongoose documentation中找到更多信息。