【问题标题】:mongoose update only selected field猫鼬只更新选定的字段
【发布时间】:2021-04-17 05:52:17
【问题描述】:

我有一个模型

const ModelSchema = new Schema({
  assetObj: {
    title: {
      type: String,
      default: "untitled"
    },
    description: {
      type: String,
      default: "unavailable"
    },
    pageNo: {
      type: Number
    }
  },

....
});

我只想在这个模型中更新标题。 所以我在这里做代码。

let updateQuery = {};
updateQuery.assetObj = {
  title: 'New Title'
};
await Model.update({ _id: req.params.id }, { $set: updateQuery });

但结果是删除了模型中的描述和pageNo。

如何只更新猫鼬模型中的标题?

【问题讨论】:

  • 使用类似的东西 await Model.update({ _id: req.params.id }, { $set: { assetObj.title : New Title' }
  • @Shubham Tiwari 谢谢,喜欢这样吗? updateQuery = { "assetObj.title": '新标题"}
  • 它将覆盖整个数据
  • @ShubhamTiwari 我用你的方法解决了我的问题。谢谢。

标签: node.js mongoose mongoose-schema


【解决方案1】:

我找到了答案。 我需要将字段名称更改为“some.some”。 所以我改变了。

let updateQuery = { "assetObj.title": 'New Title"};
await Model.update({ _id: req.params.id }, { $set: updateQuery });

【讨论】:

    猜你喜欢
    • 2019-09-14
    • 2021-12-10
    • 2022-11-28
    • 2017-02-10
    • 2018-08-26
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多