[英]Correct way to use array of sub documents in Mongoose
我正在学习猫鼬,并且已按如下所示对“ Parent
Child
文档进行了建模。
var parent = new Schema({
children: [{ type: Schema.Types.ObjectId, ref: 'Child' }],
});
var Parent = db.model('Parent', parent);
var child = new Schema({
_owner: { type: Schema.Types.ObjectId, ref: 'Parent' },
});
var Child = db.model('Child', child);
当我删除Parent
我还要删除children
字段中引用的所有Child
对象。 关于Stackoverflow的另一个问题指出,可以像这样编写父级的中间件pre
功能...
parent.pre('remove', function(next) {
Child.remove({_owner: this._id}).exec();
next();
});
应该确保删除所有子对象。 但是,在这种情况下,是否有任何理由要在Parent
模式中拥有children
数组? 没有它,我也不能执行创建/读取/更新/删除操作吗? 例如,如果我希望所有孩子都能做?
Child.find({_owner: user._id}).exec(function(err, results) { ... };
我见过的所有有关Mongoose'hasMany'关系的示例都具有一个'children'数组,但是没有显示如何使用它。 有人可以提供示例或给出示例吗?
好吧,您在->中定义了两个不同的集合,Child和Parent
var Parent = db.model('Parent', parent);
var Child = db.model('Child', child);
因此,您可以通过添加/删除/更新来随意使用Child模型。 通过将其保存为“参考”,您可以:
Parent.find({_id:'idofparent'})
.populate('children')
.exec((err, result) => { .... } )
然后,您的父母中将会有他们的孩子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.