MongoDB重命名字段/密钥

时间:2017-01-04 16:20:20

标签: mongodb insert document insert-update

我想在MongoDB中的文档中更改字段名称(只是字段名称而不是值)。该文档如下所示(下图),它在user = Soham:

的集合中只有一个文档
{_id : ObjectId(xxxxxxxxxxxx),
 user : "Soham",
 age  : 29
}

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

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

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

2 个答案:

答案 0 :(得分:1)

使用$rename运算符。

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

dtype=int
converters={'Col1': int, 'Col2': int}

更新所有文件

db.user.update( { _id: ObjectId(xxxxxxxxxxxx) }, { $rename: { 'user': 'name'} } )

答案 1 :(得分:0)

有运营商 $rename

db.user.updateMany( {}, { $rename: { "user": "name" } } )