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更新字段內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MongoDB在Linux系統(tǒng)中的安裝與配置指南
在這篇文章中,我們將介紹如何在CentOS 7服務器上安裝MongoDB,并通過DataX將數據從MongoDB遷移到MySQL數據庫,這將包括MongoDB的安裝、配置、數據準備以及使用DataX進行數據遷移的詳細步驟2024-09-09MongoDB 中聚合統(tǒng)計計算--$SUM表達式
這篇文章主要介紹了MongoDB 中聚合統(tǒng)計計算--$SUM表達式的相關知識,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08對標mongodb存儲類JSON數據文檔統(tǒng)計分析詳解
這篇文章主要介紹了對標mongodb存儲類JSON數據文檔統(tǒng)計分析,只是介紹了簡單的查詢,其實針對各種統(tǒng)計分析場景,clickhouse提供了超級多的統(tǒng)計分析函數、窗口函數等等,當然針對數組的數據類型也有很多的統(tǒng)計分析函數,需要的朋友可以參考下2022-06-06