node.js - Mongoose 直接填充创建子文档

标签 node.js mongodb mongoose mongoose-schema mongoose-populate

我有两个 Mongoose 模式,

架构A:

{
    field1 : { type : [String] }

}

架构B:

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

我想以这样的方式填充 Mongoose ,以获得以下结果:

{
    field2 : field1 of a documnet from A 
}

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

示例:

A 中的文档 { _id:1 字段1:[“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"]
}

两者中的任何一个都会受到赞赏。

最佳答案

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

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

关于node.js - Mongoose 直接填充创建子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51025671/

相关文章:

mongodb - Casbah Mongo 作为 scala 数组 : is this the most elegant way?

mongodb - 在 Vapor 和 Fluent 中使用 Mongodb

node.js - 仅返回 1 个查找文档,但我请求 3 个 id 来查找 Node/express

javascript - 当使用所有文件都需要的模块时,如何将代码拆分到多个文件中?

node.js - 在node.jsexpress中,对 '/locations/search'的请求总是到达 '/locations/:location_id',如何以正确的方式路由

javascript - Socket.IO 与 Node.js 有何作用

regex - 将特定的返回查询转换为 mgo

node.js - 1>MDAVSCLI : error : EPERM, 不允许操作 'C:\Windows\CSC\v2.0.6'

node.js - Mongodb 只获取符合条件的子文档

node.js - Mongoose 无法读取具有复杂模式的未定义属性