mongodb更新操作符$rename

mycode:

db.person.find()

//对zs的字段名修改为了myname

db.person.update({name:'zs'},{$rename:{name:'myname'}})

//注意:如果修改的是文档字段中的字段,那么取值必须写上层级关系

db.person.update({name:'ww'},{$rename:{'book.name':'book.bookname'}})

//如果要操作的字段不存在,那么不会进行任何操作

//注意:如果重命名之后的名称已经存在,那么之前已经存在的字段会被删除
//底层的本质:先调用 u n s e t 删 除 原 有 的 重 名 字 段 , 再 调 用 unset删除原有的重名字段,再调用 unset,set设置新的字段

//注意:不能通过$rename更新操作符来操作数组

db.person.insertOne({name:'it666',age:66,book:{name:'zs',price:99},tags:[{name:'html',price:'132'},{name:'js',price:'465'}]})
db.person.updateOne({name:'it666'},{$rename:{'tags.0.name':'tags.0.TagName'}})

//不要用$rename操作数组

//可以将外层的文档转移到内层

db.person.updateOne({name:'it666'},{$rename:{age:'book.age'}})

//也可以将内层的文档转移到外层

db.person.updateOne({name:'it666'},{$rename:{'book.age':'age'}})


teacher's code

1.$rename更新操作符
KaTeX parse error: Expected '}', got 'EOF' at end of input: …e: 重命名字段 格式 :{rename:{:, …}}

2.示例

db.person.update({name:'zs'}, {$rename:{name:'MyName'}})

// 注意点: 如果修改的是文档字段中的字段, 那么取值必须写上层级关系

db.person.update({name:'ww'}, {$rename:{'book.name':'book.BookName'}})

// 注意点: 如果要操作的字段不存在, 那么不会做任何的操作

db.person.update({name:'ls'}, {$rename:{age:'MyAge'}})

// 注意点: 如果重命名之后的名称已经存在了, 那么已经存在的字段就会被删除
// 底层的本质: 先调用了 u n s e t 删 除 了 原 有 的 b o o k 字 段 , 然 后 再 调 用 unset删除了原有的book字段, 然后再调用 unsetbook,set修改字段的名称

db.person.update({name:'ww'}, {$rename:{name:'book'}})

// 注意点: 不能通过$rename更新操作符来操作数组

db.person.insert(
{
name:'it666',
age:666,
book:{name:'知播渔', price:999},
tags:[{name:'html', price:'123'}, {name:'js', price:456}]
}
)
db.person.update({name:'it666'}, {$rename:{'tags.0.name':'tags.0.TagName'}})

4.乾坤大挪移
// 可以将外层的字段转移到内层的文档中

db.person.update({name:'it666'}, {$rename:{age:'book.age'}})
db.person.find()

// 可以将内存文档中的字段, 转移到外层文档中

db.person.update({name:'it666'}, {$rename:{'book.age':'age'}})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名之辈无名之辈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值