2
ネストされたサブ文書tertiary
に詳細を保存しようとしました。Node.jsとmongooseを使用してネストされたサブ文書を更新する
module.exports = mongoose.model('Todo', {
title : String,
image:String,
bgimage:String,
secondary:[Secondary]
});
var Secondary = new mongoose.Schema({
title : String,
image:String,
bgimage:String,
tertiary :[Tertiary]
});
var Tertiary = new mongoose.Schema({
title : String,
description:String,
image:String
});
私のtertiary
データを保存するためのコードは次のとおりです。私はプライマリオブジェクトIDとセカンダリオブジェクトIDを持っています。
Todo.findById(fields.primaryid, function (err, secondary_todo) {
if (!err) {
console.log("---Inside not errot----");
console.log(fields.secondaryRefid);
secondary_todo.secondary.findById(fields.secondaryRefid,
function (err, tertiary_todo) {
console.log("---In Secondary data----");
console.log(tertiary_todo);
if (!err) {
tertiary_todo.tertiary.push({
_id: mongoose.Types.ObjectId(),
title : fields.title,
image : fields.file,
description : fields.description,
});
}
tertiary_todo.save();
});
}
});
私は私のターミナルに入ったエラーは、誰もが簡単な修正を与えることができます
/......./.../..../lib/utils.js:419 throw err; ^ TypeError: Object [object Object],[object Object],[object Object] has no method 'findById' at Promise.<anonymous>
です。私はそれを試して打ちました。
こんにちは。 DAXaholic。私はあなたが提案したコードのために次のエラーを受け取りました。 /../../node_modules/mongoose/lib/utils.js:419 throw err; ^ TypeError:Object [オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]にはメソッド 'id'がありません – venkat
コードにスキーマを設定する別の可能性のある問題が見つかりました - 更新を見て、もう一度試してください – DAXaholic
Nowそれは動作します(つまり、エラーはありません)しかし、私は第三次細部を保存することはできません。以下のように私のコードを置き換えてください。 Types.ObjectId()、 \t \tタイトル:fields.title、 image:fields.file、 description:fields.description、 }); \t \t tertiary_todo.save(); – venkat