Mongodb字段更新$rename操作符
2017-12-13 11:36
330 查看
一、定义
$rename操作符更新字段名有如下格式:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
新的字段名必须和已经存在的字段名不一样,使用点号去指定一个内嵌的文档的字段;
考虑如下集合文档:
db.students.update( { _id: 1 }, { $rename: { 'nickname': 'alias', 'cell': 'mobile' }
上面的操作重命名nickname为alias、cell字段名为mobile
二、规则
$rename操作符重命名符合条件的文档字段名;
如果文档已经存在一个字段<newName>,$reanme操作符将会删除掉这个字段并且重命名指定的字段;
如果$rename操作符重命名的字段不存在那么操作符什么也不做;
对于内嵌文档字段的重命名$rename操作符的操作跟外部文档字段是一样的;
三、看如下的students集合文档
{
"_id": 1,
"alias": [ "The American Cincinnatus", "The American Fabius" ],
"mobile": "555-555-5555",
"nmae": { "first" : "george", "last" : "washington" }
}
{
"_id": 2,
"alias": [ "My dearest friend" ],
"mobile": "222-222-2222",
"nmae": { "first" : "abigail", "last" : "adams" }
}
{
"_id": 3,
"alias": [ "Amazing grace" ],
"mobile": "111-111-1111",
"nmae": { "first" : "grace", "last" : "hopper" }
}
重命名字段nmae为name:
db.students.updateMany( {}, { $rename: { "nmae": "name" } } )
重命名后的结果是:
{
"_id": 1,
"alias": [ "The American Cincinnatus", "The American Fabius" ],
"mobile": "555-555-5555",
"name": { "first" : "george", "last" : "washington" }
}
{
"_id" : 2,
"alias" : [ "My dearest friend" ],
"mobile" : "222-222-2222",
"name" : { "first" : "abigail", "last" : "adams" }
}
{ "_id" : 3,
"alias" : [ "Amazing grace" ],
"mobile" : "111-111-1111",
"name" : { "first" : "grace", "last" : "hopper" } }
重命名内嵌文档中的字段:
重命名一个内嵌文档字段,调用$rename操作符使用点号引用字段,如果重命名的字段是同一个内嵌文档中的字段也使用点号引用,如下:
db.students.update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
上面的操作重命名内嵌文档字段first为fname
{
"_id" : 1,
"alias" : [ "The American Cincinnatus", "The American Fabius" ],
"mobile" : "555-555-5555",
"name" : { "fname" : "george", "last" : "washington" }
}
重命名一个不存在的字段:
当使用$rename操作符重命名一个不存在的字段时,操作符什么也不做:
db.students.update( { _id: 1 }, { $rename: { 'wife': 'spouse' } } )
$rename操作符更新字段名有如下格式:
{$rename: { <field1>: <newName1>, <field2>: <newName2>, ... } }
新的字段名必须和已经存在的字段名不一样,使用点号去指定一个内嵌的文档的字段;
考虑如下集合文档:
db.students.update( { _id: 1 }, { $rename: { 'nickname': 'alias', 'cell': 'mobile' }
上面的操作重命名nickname为alias、cell字段名为mobile
二、规则
$rename操作符重命名符合条件的文档字段名;
如果文档已经存在一个字段<newName>,$reanme操作符将会删除掉这个字段并且重命名指定的字段;
如果$rename操作符重命名的字段不存在那么操作符什么也不做;
对于内嵌文档字段的重命名$rename操作符的操作跟外部文档字段是一样的;
三、看如下的students集合文档
{
"_id": 1,
"alias": [ "The American Cincinnatus", "The American Fabius" ],
"mobile": "555-555-5555",
"nmae": { "first" : "george", "last" : "washington" }
}
{
"_id": 2,
"alias": [ "My dearest friend" ],
"mobile": "222-222-2222",
"nmae": { "first" : "abigail", "last" : "adams" }
}
{
"_id": 3,
"alias": [ "Amazing grace" ],
"mobile": "111-111-1111",
"nmae": { "first" : "grace", "last" : "hopper" }
}
重命名字段nmae为name:
db.students.updateMany( {}, { $rename: { "nmae": "name" } } )
重命名后的结果是:
{
"_id": 1,
"alias": [ "The American Cincinnatus", "The American Fabius" ],
"mobile": "555-555-5555",
"name": { "first" : "george", "last" : "washington" }
}
{
"_id" : 2,
"alias" : [ "My dearest friend" ],
"mobile" : "222-222-2222",
"name" : { "first" : "abigail", "last" : "adams" }
}
{ "_id" : 3,
"alias" : [ "Amazing grace" ],
"mobile" : "111-111-1111",
"name" : { "first" : "grace", "last" : "hopper" } }
重命名内嵌文档中的字段:
重命名一个内嵌文档字段,调用$rename操作符使用点号引用字段,如果重命名的字段是同一个内嵌文档中的字段也使用点号引用,如下:
db.students.update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
上面的操作重命名内嵌文档字段first为fname
{
"_id" : 1,
"alias" : [ "The American Cincinnatus", "The American Fabius" ],
"mobile" : "555-555-5555",
"name" : { "fname" : "george", "last" : "washington" }
}
重命名一个不存在的字段:
当使用$rename操作符重命名一个不存在的字段时,操作符什么也不做:
db.students.update( { _id: 1 }, { $rename: { 'wife': 'spouse' } } )
相关文章推荐
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符
- Mongodb字段更新$rename操作符