MongoDB 重命名字段/键

Soh*_*ham 1 document insert insert-update mongodb

我想更改 MongoDB 文档中的字段名称(只是字段名称而不是值)。该文档如下所示(如下所示),并且在 user= Soham 的集合中只有一个文档:

{_id : ObjectId(xxxxxxxxxxxx),
 user : "Soham",
 age  : 29
}
Run Code Online (Sandbox Code Playgroud)

现在我想将名为 'user' 的字段更改为 'name',而不是该字段的值。所以在 mongo shell 中我写了以下命令:

var soh = db.user.find({"user":"Soham"});
soh.name = soh.user;
delete soh.user;
db.user.update({"user":"Roshan"},soh);
Run Code Online (Sandbox Code Playgroud)

当我运行更新命令时,它抛出了我的错误。因为我是 MongoDB 的新手,所以不确定我哪里出错了。任何形式的帮助表示赞赏。

use*_*814 7

有运算符$rename

db.user.updateMany( {}, { $rename: { "user": "name" } } )
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 6

使用$rename运算符。

因此,在 mongo shell 中,要更新单个文档:

db.user.update( { _id: ObjectId(xxxxxxxxxxxx) }, { $rename: { 'user': 'name'} } )
Run Code Online (Sandbox Code Playgroud)

更新所有文件

db.user.updateMany( {}, {$rename: { "user": "name" } } )
Run Code Online (Sandbox Code Playgroud)