【问题标题】:mongodb mongoose js update not inserting new fieldmongodb mongoose js更新不插入新字段
【发布时间】:2015-10-01 09:31:01
【问题描述】:

我正在尝试使用 Mongoose js 插入一个带有 findOneAndUpdate 语句的新字段“描述”。它不工作。当字段已经存在并使用给定值更新它时,代码可以正常工作。根据MongoDB文档 如果它不存在,$set 应该自动创建这个字段。

任何想法表示赞赏。

Course.findOneAndUpdate({'_id': CourseId},{$set:{'description':courseDescription}},function(err, course) {
        if (err)
            res.jsonp({response:'err'});

        res.jsonp(course);
    });

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

使用 mongoose,您不能设置任意字段,至少不能以您在示例中尝试的方式。

您需要将描述添加到您的Course Schema,然后您的代码示例才能工作。

【讨论】:

  • 我实际上以为我在我的架构中定义了这个字段。当我仔细检查时,我发现它根本不存在。谢谢
  • 哇,多么简单但愚蠢的错误,谢谢!
  • @real_ate, @noobie @jarret 我遇到了来自猫鼬的非常奇怪的行为。即使我在架构和ModelName.findByIdAndUpdate(id, { $set: { desc: 'val' } }, { new: true, lean: true }) 中定义了新字段,但它不起作用。生成的 mongodb 查询没有 desc 字段。 IDK有什么问题。你有什么想法吗?
  • 您应该仔细检查您的架构,这个答案的重点是,如果您没有更新内容,那么您的架构很可能缺少某些内容
猜你喜欢
  • 1970-01-01
  • 2021-06-21
  • 2015-06-24
  • 2014-10-06
  • 2017-02-12
  • 2013-02-07
  • 2016-05-08
  • 2015-10-05
  • 2021-03-11
相关资源
最近更新 更多