gpt4 book ai didi

node.js - Mongoose 子文档插入另一个集合,同时在父模式中保持关系

转载 作者:可可西里 更新时间:2023-11-01 10:31:45 26 4
gpt4 key购买 nike

我正在尝试执行以下操作并想知道是否可以使用 Mongoose:

  1. 保留一个子文档 ID 数组,以便于使用 mongoose 的填充方法。

  2. 将子文档数据存储到另一个集合中

例子:

var ParentSchema = new Schema({
children : [{ type: Schema.ObjectId, ref: 'Child' }]
});
mongoose.model('Parent', ParentSchema);

var ChildSchema = new Schema({
name : { type: String}
});
mongoose.model('Child', ChildSchema);

这就是我希望我的数据库的样子:

Parents
{
children:[{ObjectId("52856528cb28bdc18acac23a")},{ObjectId("52856528cb28bdc18acac23b")}]
}

Childs
[{
_id: ObjectId("52856528cb28bdc18acac23a")
name: "John"
},
{
_id: ObjectId("52856528cb28bdc18acac23b"),
name: "bob"
}]

我想通过执行以下操作轻松调用填充:

Parents.find({}).populate(Parents.children).exec();

populate 方法是否能够以这种方式连接数据数组?另外,我如何将 Id 的集合存储在父模式中并将子文档存储在子模式中(并以我可以稍后使用填充方法的方式执行此操作)?

请注意此引用:http://mongoosejs.com/docs/subdocs.html做我想做的,除了我打算将子文档存储在另一个集合中而不是作为嵌入文档。

提前致谢

var Child = mongoose.model('Child'),
Parent = mongoose.model('Parent');

var parent = new Parent;
var child = new Child({name: "bob"});
child.save(function(err, child){
parent.children.push(child);
parent.save();
})

最佳答案

此代码有效:

Parents.find({}).populate(children).exec();

因此可以填充位于单独集合中的子文档。

关于node.js - Mongoose 子文档插入另一个集合,同时在父模式中保持关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com