前言
數據更新是我們日常操作數據庫必不可少的一部分,下面這篇文章就給大家分享了操作MongoDB數據更新的一些干貨,對大家具有一定的參考學習價值,一起來學習學習吧。
常用的函數
update(<query>,<update>,<upsert>,<multi>)
,其中<query>表示篩選的條件,<update>是要更新的數據updateMany()
更新所有匹配到的數據upsert
upsert是一個布爾類型的數據,如果為true時,當根據query條件沒有找到匹配的數據時,就表示插入此條數據,如果為false就表示不插入數據
下面將會在一個空的集合中更新數據
//就會插入此條數據,因為沒有找到匹配的信息db.user.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},{'upsert':true}); db.user.update({'name':'chenjiabing','age':22,'sex':"Man"},{$set:{'hobby':'read'}},true); //和上面的語句等價//輸出 db.user.find(){ "_id" : ObjectId("59067b70856d5893a687655f"), "age" : 22, "name" : "chenjiabing", "sex" : "Man", "hobby" : "read" }
multi
如果這個參數為true,就把按條件查出來多條記錄全部更新。默認為false,如果為true的話和updateMany()
一樣的效果
下面將會更新所有匹配到的數據
db.user.update({name:'chenjiabing'},{$set:{'hobby':'code'}},{'multi':true});
字段更新操作符 Field Update Operators
$set
$set
用來指定一個鍵的值。如果這個鍵不存在,則創建它。注意這里的更新默認是只更新第一條匹配到的數據,如果第一條匹配的數據已經滿足修改后的條件,那么將不會執行下面匹配的信息
下面我們將會添加一條信息在數據庫中
db.user.insert({"name":'jack',"age":22,"sex":'Man','school':{'name':'jsnu','city':'xuzhou'}});
運行下面的代碼,將該用戶的興趣設置為“讀書”并添加至文檔中(此時文檔中hobby鍵是不存在,該條文檔就會創建它)
db.user.update({name:'jack'},{$set:{'hobby':'read'}})
下面將會修改用戶的年齡
db.user.update({'name':'jack'},{$set:{'age':20}})
下面用$set修改數據類型,將sex設置為1
db.user.update({'name':'jack'},{$set:{'sex':1}})
下面用$set修改內嵌文檔,必須指定文檔的名字和鍵值
db.user.update({name:'jack'},{$set:{'school.name':'shida','school.city':'beijing'}})
$unset
從文檔中移除指定的鍵
下面將要刪除上面插入的hobby鍵
db.user.update({name:'jack'},{$unset:{'hobby':1}}) //這里的值是任意給的,隨便什么值
$inc
$inc
修改器用來增加已有鍵的值,或者在鍵不存在時創建一個鍵$inc
就是專門來增加(和減少)數字的。$inc
只能用于整數、長整數或雙精度浮點數。要是用在其他類型的數據上就會導致操作失敗
例如 主站蜘蛛池模板: 五寨县| 福建省| 乐安县| 苏尼特右旗| 三门峡市| 武城县| 广州市| 社旗县| 桦南县| 山丹县| 定南县| 松潘县| 九江市| 长乐市| 门源| 仙居县| 宿州市| 襄城县| 全南县| 登封市| 香河县| 太白县| 无锡市| 安康市| 独山县| 遵化市| 南雄市| 竹山县| 长沙县| 阿坝县| 秭归县| 锡林郭勒盟| 涞源县| 抚松县| 台北市| 南溪县| 云霄县| 漾濞| 辉县市| 偃师市| 鹰潭市|