首页 > 解决方案 > Mongoose 直接填充创建子文档

问题描述

我有两个猫鼬模式,

模式 A:

{
    field1 : { type : [String] }

}

模式 B:

{
    field2 : { type : ObjectId, ref : 'A' }
}

我想以得到以下结果的方式填充猫鼬:

{
    field2 : field1 of a documnet from A 
}

或者

{
    field2 : document of A,
    field1 : field1 field of document A
}

例子:

A 中的文档 { _id : 1 field1 : ["1","2","3"] }

B 中的文件

{
    _id : 2
    field2 : 1
}

在我填充后,我希望结果

{
    _id : 2
    field2 : ["1","2","3"]
}

或者

{
    _id : 2
    field2 : {_id : 1 , field1 : ["1","2","3"]}
    field1 : ["1","2","3"]
}

两者中的任何一个都将不胜感激。

标签: node.jsmongodbmongoosemongoose-schemamongoose-populate

解决方案


这可以使用猫鼬中的虚拟字段来实现。

首先 populate('field2') 然后创建一个虚拟字段 field1 并将其设置为 field2.field1


推荐阅读