当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MongoDB $rename用法及代码示例


MongoDB 提供了不同类型的字段更新操作符来更新文档字段的值,$rename 操作符就是其中之一。此运算符用于使用新名称更新字段的名称。字段的新名称应与字段的现有名称不同。

  • $rename 操作符逻辑上首先对旧名称和新名称执行 $unset 操作,然后执行$set 使用新名称进行操作。
  • 如果文档包含具有新名称的字段,则此运算符将删除该字段并将指定字段重命名为新名称。
  • 此运算符还可以处理嵌入/嵌套文档或数组。在嵌入/嵌套文档中,此运算符可以重命名指定字段以及将字段移入和移出嵌入文档
  • 您可以根据需要在 update()、findAndModify() 等方法中使用此运算符。
  • 如果指定的重命名字段不可用,则此运算符将不执行任何操作。

用法:

{$rename:{<field1>:<newName1>, <field2>:<newName2>, ... } }

此处,newName 是新名称,它必须与字段的现有名称不同。借助点符号指定嵌入/嵌套文档中的字段。

在以下示例中,我们正在使用:

Database: GeeksforGeeks
Collection: Employee
Document: three documents that contain the details of the employees in the form of field-value pairs.



重命名单个文档中的字段:

在此示例中,我们将 ExperienceYear 字段的名称重命名为名字为 Amu 的员工文档中的 Experience。


db.Employee.update({"name.first":"Amu"}, 
                   {$rename:{"experienceYear":"experience"}})

重命名多个文档中的字段:

在此示例中,我们将 Employee 集合中存在的所有文档中的部门字段的名称重命名为 unit。


db.Employee.updateMany({}, {$rename:{"department":"unit"}})

重命名嵌套/嵌入文档中的字段:

在此示例中,我们将 PersonalDetails.contactInfo 的名称重命名为名为 Sumit 的员工的嵌入/嵌套文档中的 PersonalDetails.phoneNumber 字段。


db.Employee.update({"name.first":"Sumit"}, 
                  {$rename:{"personalDetails.contactInfo":"personalDetails.phoneNumber"}})




相关用法


注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 MongoDB – Rename Operator ($rename)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。