【问题标题】:updating subdocument mongoose and nodejs更新子文档 mongoose 和 nodejs
【发布时间】:2016-08-05 16:07:16
【问题描述】:

我需要保存我的次要详细信息。这是我的 nodejs 模型。

var mongoose = require('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]
});

我在 Nodejs 控制器中保存的代码

Todo.findById(fields.primaryid, function (err, secondary) {
  if (!err) {
    Todo.secondary.push({ title : fields.title,
      image : fields.file,
      bgimage : fields.bgfile,
    });
    Todo.save();
  }
});

但在我的控制台中出现以下错误:

TypeError: 无法调用未定义的“push”方法

如何解决这个问题。我已经看到很多与此相关的查询。但没有任何帮助

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    我在你的代码中发现了错误,用我的替换它,希望它能正常工作

    Todo.findById(fields.primaryid, function (err, secondary_todo) {
    if (!err) {
    secondary_todo.secondary.push({ title : fields.title,
            image : fields.file,
            bgimage : fields.bgfile,
             });
    secondary_todo.save();
    }});
    

    【讨论】:

    • 感谢 kaushik。它可以工作,但新保存的没有自动生成的 objectid 。为此我需要做的。
    • 我一直在使用类似的功能,并且我能够获取 ObjectID,但我没有使用自动生成的,而是将其自定义为从 1 开始。
    • 不,实际上我最初添加了 objectid _id:mongoose.Types.ObjectId();在我的中学。
    猜你喜欢
    • 2020-07-09
    • 1970-01-01
    • 2022-01-22
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多