2017-07-17 13 views
0

mongoose文書に単一のサブ文書を追加するにはどうすればよいですか?mongoose:文書に単一のサブ文書を追加する

ParentSchema: Schema = new Schema({ 
    name: String, 
    child: ChildSchema 
}); 

ChildSchema: Schema = new Schema({ 
    name: String 
}); 

をし、私は新しい親を作成するたびに親に新しい子を追加したいと思います:typescriptですで書かれた次のシナリオを検討してください。私のコード例では、新しい親が作成されますが、子は親に追加されません。子はnullとして表示され続けます。ここに私の現在のセーブロジックがあります:

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
あなたが親に子を追加するために、再度文書を保存することができますので、あなたは、updateメソッドに任意の値を送信していないように見えます

:更新方法で子供を

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

またはSET:

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); 
      }); 
     }); 
関連する問題