从MongoDB's文件更新只是一个索引
我有这样的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个指标的集合。
预期的结果只的名称必须是不能修改的所有文档。
回答如下:你需要$set操作,否则MongoDB的会考虑第二个参数作为当前文档的替代品,尝试:
db.roles.update({NAME: "USER"}, { $set: {NAME: "USER_ROLE"} } )