有5个更新运算符:$ inc,$ rename,$ setOnInsert,$ set和$ unset
当使用设置为true的upsert选项进行更新时,对于具有此更新查询的字段,新创建的文档的值(考虑到它不存在,因此,将其挂起):
{$inc: {age: 1}}
所以新插入的文档的值是1吗?因为之前不存在。我对吗?
如果运算符为$rename
,那么该字段的值是null
?或者该字段不会作为要插入的新文档的一部分创建?
更新
如果更新查询是重命名更新:
db.students.update( { _id: 1 }, { $rename: { 'nickname': 'alias', 'cell': 'mobile' } } )
答案 0 :(得分:1)
我在RockMongo中执行了以下步骤,它应该回答有关$ rename的问题:
您可以自己尝试一下:)
答案 1 :(得分:0)
来自docs。
重命名单个字段时,现有字段名称引用a 不存在的字段,
$rename
运算符不执行任何操作。重命名多个字段时,请参阅所有旧字段名称 不存在的字段,
$rename
运算符不执行任何操作。重命名多个字段和一些但不是所有旧字段名称时 参考不存在的字段,
$rename
运算符执行 以下操作:
- 将现有字段重命名为指定的新字段名称。
- 忽略不存在的字段。