2017-07-17 114 views
0

如何將單個子文檔添加到貓鼬文檔中?考慮下面的腳本寫在腳本中:貓鼬:將單個子文檔添加到文檔中

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) 

什麼,在這段代碼中,會導致父母保存,而不是孩子?

回答

0

它看起來像你不發送任何值的更新方法,這樣你就可以再次將文檔保存到孩子添加到父:

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); 
      }); 
     });