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

 更新时间:2024年06月20日 10:06:35   作者:威赞  
Mongodb的UPDATE提供了各种各样的方法,包括字段数值增加,数组更新等,本文介绍Mongodb使用$bit方法更新字段,文中有相关的代码示例供大家参考,需要的朋友可以参考下

定义

$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更新字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mongoDB分页的两种方法(图例)

    mongoDB分页的两种方法(图例)

    mongoDB分页的两种方法,mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的。
    2013-11-11
  • JavaScript按日期查询MongoDB中的数据的要点示例

    JavaScript按日期查询MongoDB中的数据的要点示例

    这篇文章主要介绍了JavaScript按日期查询MongoDB中数据的要点示例,MongoDB所支持的BSON有JSON没有的一些数据类型,如Date和BinData类型,需要的朋友可以参考下
    2016-03-03
  • 浅析Mongodb性能优化的相关问题

    浅析Mongodb性能优化的相关问题

    数据库性能对软件整体性能的影响是不言而喻的,那么,当我们使用MongoDB时改如何提高数据库性能呢?这篇文章通过范式化与反范式化、填充因子的使用和索引的使用三个方面来谈了谈Mongodb性能优化的相关问题,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • mongodb 实现远程连接

    mongodb 实现远程连接

    这篇文章主要介绍了mongodb 实现远程连接,需要的朋友可以参考下
    2014-07-07
  • MongoDB数据库用户角色和权限管理详解

    MongoDB数据库用户角色和权限管理详解

    这篇文章主要给大家介绍了关于MongoDB数据库用户角色和权限管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • MongoDB如何更新多级文档的数据

    MongoDB如何更新多级文档的数据

    MongoDB 这类文档型数据库与关系型数据库最大的差别就是所有数据是按文档存储的,因此更新时会涉及深层数据更新,例如更如何新某个对象的下级对象属性。本篇介绍如何更新多级文档的数据。
    2021-06-06
  • MongoDB中常用操作$addToSet、$pop和$rename

    MongoDB中常用操作$addToSet、$pop和$rename

    本文主要介绍了MongoDB中常用操作$addToSet、$pop和$rename,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • 深入理解MongoDB分片的管理

    深入理解MongoDB分片的管理

    这篇文章带大家深入理解MongoDB分片的管理,将通过主分片、分片的元数据、删除分片、增加分片、特大块以及均衡器这几方面来详细介绍,对大家的学习理解很有帮助,有需要的可以参考借鉴。
    2016-09-09
  • mac下使用brew 安装mongodb的方法教程

    mac下使用brew 安装mongodb的方法教程

    mac 系统常用的软件安装工具就是 homebrew.那么通过brew怎么安装mongodb呢?下面小编给大家分享mac下使用brew 安装mongodb的方法教程,一起看看吧
    2016-10-10
  • mongodb三分钟入门大全

    mongodb三分钟入门大全

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,接下来通过本文给大家介绍mongodb三分钟入门大全,感兴趣的朋友一起看看吧
    2022-01-01

最新评论