溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB筆記三——更新操作

發布時間:2020-07-17 21:46:05 來源:網絡 閱讀:1002 作者:ciznx 欄目:MongoDB數據庫
更新操作和查詢操作博大精深。需要好好理解。
1、強硬的文檔替換式更新操作
MongoDB筆記三——更新操作
2、主鍵沖突的時候會報錯并且停止更新操作
因為是強硬替換當替換的文檔和已有文檔ID沖突的時候則系統會報錯
3、insertOrUpdate操作
目的:查詢器查出來數據就執行更新操作,查不出來就替換操作
做法:db.[documentName].update({查詢器},{修改器},true)
MongoDB筆記三——更新操作
4、批量更新操作
默認情況當查詢器查詢出多條數據的時候默認就修改第一條數據如何實現批量修改
MongoDB筆記三——更新操作
5、使用修改器來完成局部更新操作
名稱語法案例備注說明
$set{$set:{field:value}}{$set:{name:”uspcat”}}它用來指定一個鍵值對,如果存在鍵就進行修改不存在則進行添加.
$inc{$inc:{field:value}}{$inc:{"count":1}}只是使用與數字類型,他可以為指定的鍵對應的數字類型的數值進行加減操作.
$unset{$unset:{filed:1}}{ $unset : { “name":1 }
他的用法很簡單,就是刪除指定的鍵
$push{ $push : { field : value } }
{ $push : { books:”JS”}
1.如果指定的鍵是數組增追加新的數值
2.如果指定的鍵不是數組則中斷當前操作Cannot apply $push/$pushAll modifier to non-array
3.如果不存在指定的鍵則創建數組類型的鍵值對
$pushAll
{ $pushAll : { field : array } }{ $push : { books:[“EXTJS”,”JS”]}
用法和$push相似他可以體諒添加數組數據
$addToSet
{ $addToSet: { field : value } }{ $addToSet: { books:”JS”}
目標數組存在此項則不操作,不存在此項則加進去
$pop
{$pop:{field: value}}
{$pop:{name:1}} {$pop:{name:-1}}從指定數組刪除一個值1刪除最后一個數值,-1刪除第一個數值
$pull{$pull:{filed:value}}{$pull:{"book":"JS"}}刪除一個被指定的值
$pullAll{$pullAll:{filed:array}}{$pullAll:{"name":["JS","JAVA"]}}一次性刪除多個指定的數值
${ $push : { field : value } }
{ $push : { books:”JS”}
1.數組定位器,如果數組有多個數值我們只想對其中一部分進行操作我們就要用到定位器($)
例子:
例如有文檔{name:”YFC”,age:27,books:[{type:’JS’,name:”EXTJS4”},{type:”JS”,name:”JQUERY”},{type:”DB”,name:”MONGODB”}]}
我們要把type等于JS的文檔增加一個相同的作者author是USPCAT
辦法:
db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}})

6、$addToSet和$each結合完成批量數值更新
8、runCommand函數和findAndModify函數
runCommand可以執行mongoDB中的特殊函數
    findAndModify就是特殊函數之一他的用于是返回update或remove后的文檔
    runCommand({“findAndModify”:”processes”,
           query:{查詢器},
         sort{排序},
         new:true
         update:{更新器},
         remove:true
      }).value
       ps = db.runCommand({
              "findAndModify":"persons",
              "query":{"name":"text"},
               "update":{"$set":{"email":"1221"}},
               "new":true
}).value
do_something(ps)
http://www.cppblog.com/byc/archive/2011/07/15/151063.aspx


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女