从MongoDB's文件更新只是一个索引

问题描述 投票:0回答:2

我有这样的Node.js一个Mongoose's模型

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

我做了mongo's控制台上的特定文件的更新,我做了一个指令:

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

这更新document's名称索引,但删除了其他指标(ADDED_BY, ADDED_DATE AND STATUS)我不知道发生了什么,我怎么可能这个查询而不发送所有PARAMS阙查询?只怕,我有超过50个指标的集合。

预期的结果只的名称必须是不能修改的所有文档。

node.js mongodb mongoose
2个回答
1
投票

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

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

1
投票

您需要使用$set操作符是

db.roles.update({NAME: "USER"}, { $set: {NAME: "USER_ROLE"}});
© www.soinside.com 2019 - 2024. All rights reserved.