假定以下架构:
Aschema
ASchema = {
type: { type: ObjectId, ref: BModel }
}
/**
* ADoc = {
* _id: 00a1,
* type: 00b1001
* },
*
*/
BSchema
BSchema = {
children: [{
name: String,
}]
}
/**
* BDoc = {
* _id: 00b1,
* children: [{
* _id: 00b1001,
* name: 'b1'
* }, {
* _id: 00b1002,
* name: 'b2'
* }]
* }
*
*/
当我通过_id找到“ 00a1”时,我将得到以下结果
AModel.find({_id: '00a1'}).lean();
/**
* {
* _id: 00a1,
* type: 00b1001
* }
*/
如您所见,我的ASchema类型ref引用了B文档中子文档的ObjectId
我想得到这个结果
/**
* {
* _id: 00a1,
* type: {
* _id: 00b1001,
* name: 'b1'
* }
* }
*/
我知道这里有很多人,但是我没有人,希望得到大家的帮助,谢谢!
我发布了相同的问题,但是描述不够清晰。 How to use populate with sub-doc ObjectId