Mongodb使用$bit方法更新字段的代碼詳解
定義
$bit操作符,對(duì)指定字段進(jìn)行二進(jìn)制更新。該操作符支持二進(jìn)制與運(yùn)算,或運(yùn)算和異或運(yùn)算。按照下面的形式,使用$bit操作符。
{ $bit: {<field>: { <and|or|xor>: <int>}}}
$bit操作符,只能應(yīng)用在整型數(shù)值類(lèi)型字段的更新。更新嵌入式文檔或嵌入式數(shù)組是,需要使用點(diǎn)操作符。
行為
- 自mongodb5.0開(kāi)始,UPDATE操作按照字段名稱(chēng)的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對(duì)一個(gè)文檔的多個(gè)字段操作,是原子性的。
- mongodb 5.0版本以后,向$bit傳入空表達(dá)式({ })時(shí),mongodb不再拋出錯(cuò)誤??毡磉_(dá)式不會(huì)修改字段值 ,也不會(huì)在oplog中,添加新的操作記錄。
應(yīng)用
構(gòu)建集合switches并插入數(shù)據(jù),其中expdata字段,是整型數(shù)字類(lèi)型的字段
db.switches.insertMany([{ _id: 1,expdata: Int32(13) },{ _id: 2,expdata: Int32(3) },{ _id: 3,expdata: Int32(1) }])
與運(yùn)算
構(gòu)建數(shù)據(jù)更新語(yǔ)句,對(duì)expdata進(jìn)行二進(jìn)制更新。
db.switches.updateOne({_id: 1}, {$bit: {expdata: {and: Int32(10)}}})
查看更新結(jié)果
db.switches.find() { "_id": 1, "expdata": 8 }
或運(yùn)算
構(gòu)建數(shù)據(jù)更新語(yǔ)句,使用或運(yùn)算更新文檔。
db.switches.updateOne({_id: 2}, {$bit: {expdata: {or: Int32(5)}}})
查看更新結(jié)果
{ "_id": 2, "expdata": 7 }
異或運(yùn)算
構(gòu)建數(shù)據(jù)更新語(yǔ)句,使用或運(yùn)算更新文檔。
db.switches.updateOne({_id: 3}, {$bit: {expdata: {xor: Int32(5)}}})
查看更新結(jié)果
{ "_id": 3, "expdata": 4 }
到此這篇關(guān)于Mongodb使用$bit方法更新字段的代碼詳解的文章就介紹到這了,更多相關(guān)Mongodb $bit更新字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mongodb中ObjectId和ObjectIdr實(shí)現(xiàn)
本文主要介紹了mongodb中ObjectId和ObjectIdr實(shí)現(xiàn)2023-12-12MongoDB在Linux系統(tǒng)中的安裝與配置指南
在這篇文章中,我們將介紹如何在CentOS 7服務(wù)器上安裝MongoDB,并通過(guò)DataX將數(shù)據(jù)從MongoDB遷移到MySQL數(shù)據(jù)庫(kù),這將包括MongoDB的安裝、配置、數(shù)據(jù)準(zhǔn)備以及使用DataX進(jìn)行數(shù)據(jù)遷移的詳細(xì)步驟2024-09-09Mongodb文檔和數(shù)組的通配符索引應(yīng)用小結(jié)
Mongodb的通配符索引,為靈活可變的Mongodb數(shù)據(jù)結(jié)構(gòu)提供了高效的查詢(xún)方法,本文結(jié)合Mongodb官方文檔,詳細(xì)介紹在嵌入式文檔和數(shù)組上,通配符索引的結(jié)構(gòu),感興趣的朋友一起看看吧2024-07-07MongoDB 中聚合統(tǒng)計(jì)計(jì)算--$SUM表達(dá)式
這篇文章主要介紹了MongoDB 中聚合統(tǒng)計(jì)計(jì)算--$SUM表達(dá)式的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08對(duì)標(biāo)mongodb存儲(chǔ)類(lèi)JSON數(shù)據(jù)文檔統(tǒng)計(jì)分析詳解
這篇文章主要介紹了對(duì)標(biāo)mongodb存儲(chǔ)類(lèi)JSON數(shù)據(jù)文檔統(tǒng)計(jì)分析,只是介紹了簡(jiǎn)單的查詢(xún),其實(shí)針對(duì)各種統(tǒng)計(jì)分析場(chǎng)景,clickhouse提供了超級(jí)多的統(tǒng)計(jì)分析函數(shù)、窗口函數(shù)等等,當(dāng)然針對(duì)數(shù)組的數(shù)據(jù)類(lèi)型也有很多的統(tǒng)計(jì)分析函數(shù),需要的朋友可以參考下2022-06-06Mongodb啟動(dòng)命令參數(shù)中文說(shuō)明
這篇文章主要介紹了Mongodb啟動(dòng)命令參數(shù)中文說(shuō)明,本文包括基本配置、主/從參數(shù)、Sharding(分片)選項(xiàng)等內(nèi)容,需要的朋友可以參考下2014-10-10大數(shù)據(jù)環(huán)境下mongoDB為何要加索引淺析
這篇文章主要給大家介紹了關(guān)于大數(shù)據(jù)環(huán)境下mongoDB為何要加索引的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05ubuntu mongodb安裝在哪個(gè)文件夾路徑詳解
這篇文章主要為大家介紹了ubuntu mongodb安裝在哪個(gè)文件夾的安裝路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Mongodb數(shù)據(jù)庫(kù)兩種啟動(dòng)方法小結(jié)
MongoDB是一種開(kāi)源的服務(wù)器端NoSQL數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了一種靈活的框架,可以快速地存儲(chǔ)、處理和管理大量的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Mongodb數(shù)據(jù)庫(kù)兩種啟動(dòng)方法的相關(guān)資料,需要的朋友可以參考下2023-12-12