该$rename
操作逻辑执行$unset
旧名称,新名称都有,然后执行
$set
新名称运行。因此,该操作可能不会保留文档中字段的顺序;即,重命名的字段可以在文档中移动。
如果文档中已有一个带有的字段<newName>
,则
$rename
操作员将删除该字段并将其重命名
<field>
为<newName>
。
如果文档中不存在要重命名的字段,则不$rename
执行任何操作(即不执行任何操作)。
对于嵌入式文档中的字段,$rename
操作员可以重命名这些字段,也可以将字段移入或移出嵌入式文档。$rename
如果这些字段在数组元素中,则不起作用。