【问题标题】:Update just one index from MongoDB´s document只更新 MongoDB 文档中的一个索引
【发布时间】:2019-02-06 02:41:01
【问题描述】:

我有一个像这样在 Node.js 上的 Mongoose 模型

NAME: { type: String, required: true, unique: true },
ADDED_BY: { type: Schema.Types.ObjectId },
ADDED_DATE: { type: Date },
STATUS: { type: String, default: 'active' }

我在 mongo 的控制台上更新了一个特定的文档,我做了下一条指令:

db.roles.update({NAME: "USER"}, {NAME: "USER_ROLE"});

这更新了文档的 NAME 索引,但它删除了其他索引 (ADDED_BY, ADDED_DATE AND STATUS) 我不知道发生了什么,如果不将所有参数发送到 que 查询,我怎么能这个查询? 恐怕,我有一个包含 50 多个索引的集合。

预期的结果是只有 NAME 必须修改,而不是所有文档。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    你需要$set操作符,否则MongoDB会考虑第二个参数作为你当前文档的替换,试试:

    db.roles.update({NAME: "USER"}, { $set: {NAME: "USER_ROLE"} } )
    

    【讨论】:

      【解决方案2】:

      你需要使用$set操作符

      db.roles.update({NAME: "USER"}, { $set: {NAME: "USER_ROLE"}});
      

      【讨论】:

        猜你喜欢
        • 2019-02-09
        • 1970-01-01
        • 2017-08-16
        • 2014-03-27
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 2016-11-04
        • 2016-03-15
        相关资源
        最近更新 更多