【发布时间】:2017-11-07 00:34:08
【问题描述】:
今天我遇到了一个问题。我正在使用 express、mongodb 和 mongoose 来处理我的应用程序的后端。
我得到了一个模型,它的 ObjectId 引用了他的父母。我想检索包含此父级的每个文档。但我只收到父母的名字而不是身份证。
我发现的唯一解决方案是进行第一次查询以查找 id,然后再进行一次查询以查找我的文档。我想知道是否可以在一个查询中做到这一点?
我的模特:
const childSchema = new Schema({
name: {
type: String,
required: true
},
_exampleParent: {
type: Schema.Types.ObjectId, ref: 'parents',
}
});
我的查询:
Parent.findOne({name:req.query.parent}, function(err, values){
if(err) return next(err);
Child.find({_exampleParent:values.id},
'name',
function(err, values){
if(err) return next(err);
res.send(values);
}
);
});
谢谢大家!
【问题讨论】:
-
如果 name 是唯一的,那么在 child 中使用 id 你可以使用 name,否则你需要像现在一样通过 name 查询来查找 id
标签: javascript node.js mongodb express mongoose