当前位置: 代码网 > it编程>数据库>Nosql > Mongodb使用$bit方法更新字段的代码详解

Mongodb使用$bit方法更新字段的代码详解

2024年07月02日 Nosql 我要评论
定义$bit操作符,对指定字段进行二进制更新。该操作符支持二进制与运算,或运算和异或运算。按照下面的形式,使用$bit操作符。{ $bit: {<field>: { <and|or|

定义

$bit操作符,对指定字段进行二进制更新。该操作符支持二进制与运算,或运算和异或运算。按照下面的形式,使用$bit操作符。

{ $bit: {<field>: { <and|or|xor>: <int>}}}

$bit操作符,只能应用在整型数值类型字段的更新。更新嵌入式文档或嵌入式数组是,需要使用点操作符。

行为

  • 自mongodb5.0开始,update操作按照字段名称的字典顺序更新字段。当字段中包含数字时,按照数字顺序依次更新字段。当然,对一个文档的多个字段操作,是原子性的。
  • mongodb 5.0版本以后,向$bit传入空表达式({ })时,mongodb不再抛出错误。空表达式不会修改字段值 ,也不会在oplog中,添加新的操作记录。

应用

构建集合switches并插入数据,其中expdata字段,是整型数字类型的字段

db.switches.insertmany([{
    _id: 1,expdata: int32(13)
},{
    _id: 2,expdata: int32(3)
},{
    _id: 3,expdata: int32(1)
}])

与运算

构建数据更新语句,对expdata进行二进制更新。

db.switches.updateone({_id: 1}, {$bit: {expdata: {and: int32(10)}}})

查看更新结果

db.switches.find()
{
    "_id": 1,
    "expdata": 8
  }

或运算

构建数据更新语句,使用或运算更新文档。

db.switches.updateone({_id: 2}, {$bit: {expdata: {or: int32(5)}}})

查看更新结果

{
    "_id": 2,
    "expdata": 7
  }

异或运算

构建数据更新语句,使用或运算更新文档。

db.switches.updateone({_id: 3}, {$bit: {expdata: {xor: int32(5)}}})

查看更新结果

{
    "_id": 3,
    "expdata": 4
  }

到此这篇关于mongodb使用$bit方法更新字段的代码详解的文章就介绍到这了,更多相关mongodb $bit更新字段内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com