Mongodb中更新的學習小結

2021-12-29 21:37:43 字數 1631 閱讀 3315

mongodb中更新的學習小結

今天繼續很久沒學習的mongodb的簡單學習,今天來看的是更新。先來看簡單的用法: 

www.2cto.com  

use updatetest  

>switched to db updatetest  

首先插入一下:  

db.things.insert( )  

db.things.find()  

會找到:  

更新的格式為:    www.2cto.com  

db.collection.update( criteria, objnew, upsert, multi )  

引數:  

criteria - 查詢需要更新的項;  

objnew - 更新的物件或者 $ operators (例如 $inc) 這樣的操作因子  

upsert - 是否是 "upsert"; 也就是說如果記錄不存在是否插入新的記錄  

multi - 是否所有滿足criteria的在整個文件都更新  

注意:在預設情況下,update()只會更新第乙個滿足條件的項。如果需要修改所以的滿足條件的  

項的話,需要使用multi這個標誌位。  

db.things.update(, )  

再find一下  

db.things.find()  

會發現有test2了;  

再來:  

db.things.update(, , true);  

注意引數true這裡的用法,結果為,因為hello沒有,所以只會插入  

hello,abc了。  

也可以寫成:  

db.things.update(, , );  

注意:  

1、update方法只更新一條記錄  

預設情況下update只更新符合查詢條件的第一條找到的記錄。如果想更新所有符合條件的記錄,需要手動新增 multi 這個引數。  

2、update方法的更新引數  

像下面這個語句  

updatetest.update( , );  

會把符合條件的原紀錄按照完整替換,而不是簡單的將name設為"joe",age設為20.  

如果只想更改這2個值,而不是替換完整物件,應該寫  

updatetest.update( ,});  

$inc的用法,比如統計經常要用到了,如:  

db.things.update(, }, );  

db.things.find()  

>  

再多執行兩次:  

db.things.update(, }, );  

db.things.update(, }, );  

>db.things.find()  

>  

可以看到,hits變為3了。  

multi的用法:  

比如:  

db.indexing.insert( )  

db.indexing.insert( )  

db.indexing.insert( )  

要將所有的denies的age都更新,必須加行multi:  

db.indexing.update(, },)

Linux Shell學習簡單小結 更新中

if fi bin bash 刪除檔案 和 新建檔案 file readme function delfile function addfile delfile addfile result 沒有readme檔案 work shell sh if e.sh add readme workshell ...

Linux Shell學習簡單小結 更新中

if fi result 沒有readme檔案 work shell sh if e.sh add readme workshell sh if e.sh del readme add readme if else fi result work shell sh if.sh press y hell...

MongoDB更新同步的oplog位置

在mongodb中,副本集節點之間為了保持一致性,需要通過oplog的同步與回放來進行。mongodb採用的是節點向源節點主動拉取的方式,從源節點拉取oplog,目的節點需要及時通知其他節點它的最新的同步到的時間點。如上圖所示,2個secondary從primary上面拉取oplog,每當secon...