使用Node.js和mongoose更新嵌套的子文档
我试图保存细节,以我的嵌套子文件tertiary
。
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(); }); } });
我在terminal上的错误是
/......./.../..../lib/utils.js:419 throw err; ^ TypeError: Object [object Object],[object Object],[object Object] has no method 'findById' at Promise.<anonymous>
任何人都可以快速解决。 我试了一下,
您可能需要在描述子文档的文档中阅读此页面,也可以使用用于查找子文档的特殊id()
方法来提供其id。
所以不要在子文档上调用findById
secondary_todo.secondary.findById(fields.secondaryRefid, function (err, tertiary_todo) { ...
使用像这样的id
var tertiary_todo = secondary_todo.secondary.id(fields.secondaryRefid); ...
更新:另一个问题可能是您的架构设置在您定义之前使用您的子架构时中断。 像这样对他们重新sorting
var Tertiary = new mongoose.Schema({ title : String, description:String, image:String }); var Secondary = new mongoose.Schema({ title : String, image:String, bgimage:String, tertiary :[Tertiary] }); module.exports = mongoose.model('Todo', { title : String, image:String, bgimage:String, secondary:[Secondary] });
- 可靠地检索哪个字段在Mongo中引起“重复键错误”
- 在jQuery File Upload中上传所有文件时,如何在服务器端使用stop事件
- Mongoose模式引用和未定义types“ObjectID”
- 无法在NodeJS中使用Mongoose和Typescript扩展基类
- 使用Mongoose ORM的凶手是什么原因?
- 坏BSON文档:使用Node MongoDB驱动程序的非法CString
- 在Node.js Mongoose中,我想更新每个字段…我怎么能做到这一点?
- 无法获取蓝鸟许诺和mongoose的save()在node.js中工作
- 如何在Node中使用Mongoose访问`findAndModify`方法?