Node.js mongoose:将单个子文档添加到文档中
如何将单个子文档添加到mongoose文档?考虑下面的脚本编写:Node.js mongoose:将单个子文档添加到文档中,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,如何将单个子文档添加到mongoose文档?考虑下面的脚本编写: ParentSchema: Schema = new Schema({ name: String, child: ChildSchema }); ChildSchema: Schema = new Schema({ name: String }); 每当我创建一个新的父对象时,我都想向父对象添加一个新的子对象。在我的代码示例中,创建了新的父级,但从未将子级添加到父级。子项一直显示为空。以下是我当前的保存
ParentSchema: Schema = new Schema({
name: String,
child: ChildSchema
});
ChildSchema: Schema = new Schema({
name: String
});
每当我创建一个新的父对象时,我都想向父对象添加一个新的子对象。在我的代码示例中,创建了新的父级,但从未将子级添加到父级。子项一直显示为空。以下是我当前的保存逻辑:
let parentdoc = new this._model(iparent);//base repository protetected member
parentdoc.save((err: any, result: IParentModel) => {
if (err) {
reject(err);
}
result.child = new Child(child);
result.update(null, (err: Error, results1: IParentModel) => {
if (err) {
reject(err);
}
resolve(result1);
});
});
where this._model = mongoose.model<IParentModel>("Parent", ParentSchema)
让parentdoc=newthis.\u模型(iparent)//受保护的基本存储库成员
parentdoc.save((错误:any,结果:IParentModel)=>{
如果(错误){
拒绝(错误);
}
result.child=新子女(child);
result.update(null,(err:Error,results1:IParentModel)=>{
如果(错误){
拒绝(错误);
}
解决(结果1);
});
});
其中,this.\u model=mongoose.model(“父”,ParentSchema)
在此代码中,什么会导致父对象保存而不是子对象?看起来您没有向更新方法发送任何值,因此您可以再次保存文档以将子对象添加到父对象:
parentdoc.save((err: any, result: IParentModel) => {
if (err) {
reject(err);
}
result.child = new Child(child);
result.save(null, (err: Error, results1: IParentModel) => {
if (err) {
reject(err);
}
resolve(result1);
});
});
或在更新方法中设置子项:
parentdoc.save((err: any, result: IParentModel) => {
if (err) {
reject(err);
}
const child1 = new Child(child);
result.update(null, { $set: { child: child1, } }, null, (err: Error, results1: IParentModel) => {
if (err) {
reject(err);
}
resolve(result1);
});
});