亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

更新文檔(update)

發布時間:2020-07-07 21:53:34 來源:網絡 閱讀:2529 作者:梁十八 欄目:關系型數據庫

更新文檔(update)



修改一條簡單文檔:

db.getCollection("test").insert(
????{
????????title:?"商品購物單1",
????????amount:?35,
????????detail:?[
????????????{name:?"蘋果",?price:?22},
????????????{name:?"面粉",?price:?18}
????????]
????}
);
//修改符合條件的一條(插入的,符合條件的最早一條)
db.getCollection("test").update(
????{
????????title:?"商品購物單1"
????},
????{
????????$set:?{title:?"商品購物單2"}
????}
);

(update,修改符合條件的一條(插入的,符合條件的最早一條))


更新字段(增加,減少):

db.getCollection("test").update(
????{
????????title:?"商品購物單1"
????},
????{
????????$inc:?{"amount":?5}
????}
);

(update,修改符合條件的一條(插入的,符合條件的最早一條)。$inc操作符后面的值,可以是正數負數,也可以是小數


改為指定倍數:

db.getCollection("test").update(
????{
????????title:?"商品購物單1"
????},
????{
????????$mul:?{"amount":?2}
????}
);

(update,修改符合條件的一條(插入的,符合條件的最早一條)。$mul操作符后面的值,可以是正數負數,也可以是小數


更新字段/鍵名

db.getCollection("test").insert(
????{
????????_id:?66,
????????titlss:?35,
????????amount:?50.5,
????????detail:?[
????????????{name:?"蘋果",?price:?22},
????????????{name:?"面粉",?price:?18}
????????]
????}
);
db.getCollection("test").update(
????{
????????_id:?66
????},
????{
????????$rename:?{"titlss":?"title"}
????}
);

($rename 操作符。在鍵名大量出錯的情況下尤其有用)


將_id為66,title為35的這一列去掉(其他數據條的title不變)

db.getCollection("test").update(
????{
????????_id:?66
????},
????{
????????$unset:?{"title":?"35"}
????}
);

更新文檔(update)(其他數據條的title不變,title為35的變為N/A)


_id:66文檔的amount由50.5修改為50:

db.getCollection("test").update(
????{
????????_id:?66
????},
????{
????????$unset:?{"title":?"35"}
????}
);

(將$min給出的值與當前文檔字段值進行比較,當給定值較小時則修改當前文檔值為給定值)


_id:66文檔的amount由50修改為50.5:

db.getCollection("test").update(
????{
????????_id:?66
????},
????{
????????$max:?{"amount":?50.5}
????}
);

(將$max 給出的值與當前文檔字段值進行比較,當給定值較大時則修改當前文檔值為給定值)


ISODate時間方法:

db.getCollection("test").insert(
????{
????????_id:?69,
????????title:?"商品購物單6",
????????amount:?80,
????????unit:?"元",
????????detail:?[
????????????{name:?"蘋果",?price:?22},
????????????{name:?"面粉",?price:?18}
????????],
????????lasttime:?ISODate("2018-07-21?14:53:56")
????}
);


修改一條文檔里的數組和嵌套文檔:

db.getCollection("test").insert(
????{
????????_id:?80,
????????title:?"商品購物單80",
????????amount:?80,
????????unit:?"元",
????????detail:?[
????????????{name:?"蘋果",?price:?22},
????????????{name:?"面粉",?price:?18}
????????],
????????lasttime:?ISODate("2018-07-21?14:53:56"),
????????overview:?{shop:?"丁丁電子商務平臺",?shopno:?5,?address:"地球村"}
????}
);
db.getCollection("test").update(
????{
????????_id:?80
????},
????{
????????$set:?{
????????????"detail.1":?{name:?"大米",?price:?16},
????????????"overview.address":?"某海"
????????}
????}
);

更新文檔(update)

(MongoDB數組下標從0開始,"detail.1"代表數組第2個元素)

(引用數組或嵌入文檔對象時,都需要加""號,如"detail.1","overview.address",中間用點號隔離)

修改數組的內容,要有


默認情況下update命令都執行修改一條文檔動作,我們也希望能同時修改所有符合條件的文檔記錄,這里需要采用multi選項:

db.getCollection("test").update(
????{
????????"detail.name":?"面粉",
????????"detail.price":?{$lte:?30}
????},
????{
????????$set:?{
????????????"detail.1":?{name:?"面粉",?price:?666},
????????????"overview.address":?"這里"
????????}
????},
????{
????????multi:?true
????}
);

(將面粉價格小于等于30的記錄的detail數組第二個(下標為1)的面粉價格改為40)


find()查詢條件操作符,可以用在update操作條件上

db.getCollection("test").update(
????{
????????"detail.name":"面粉",?"detail.price":?{$lte:?30}
????},
????{
????????$set:?{
????????????"detail.1":?{name:"面粉",?price:40}
????????}
????},
????{
????????multi:?true?//滿足條件的都修改
????}
);


Update命令在特定情況下,可以增加文檔的宇段,甚至實現insert命令功能。這個特定條件是要修改的文檔沒有要修改的字段,而且update命令帶upsert選項

db.getCollection("test").update(
????{
????????_id:?80
????},
????{
????????$set:?{
????????????"detail.1":?{name:"面粉",?price:10},?//修改后的
????????????danwei:?"美元"?//新增加字段
????????}
????},
????{
????????upsert:?true
????}
);


writeConcern選項為update修改數據異常時,提供出錯處理機制

db.getCollection("test").update(
????{
????????item:?""
????},
????{
????????$set:?{
????????????title:?"測試",?price:?50
????????}
????},
????{
????????multi:?true,
????????writeconcern:?{w:?"majority",?wtimeout:3000}
????}
);

(當update命令在5秒內沒有執行完成時,取消該命令操作,并返回錯誤值)


db.collection.updateOne()。與update()唯一的區別是命令語法里少了一個multi :<boolean>選項, 也就是updateOne()只適用于符合條件的一條文檔的修改任務。

db.collection.updateMany()。與update()唯一的區別是命令語法里少了一個multi:<boolean>選項, 也就是updateMany()只適用于符合條件的多條文檔的修改任務。

db.collection.replaceOne()。與update()的區別有兩處,一個沒有multi:<boolean>選項;另外一個在第二個參數Cupdate的<update>)里不能有更新操作符。

更新文檔(update)

向AI問一下細節

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

AI

永平县| 洛隆县| 昭平县| 牡丹江市| 肥东县| 西林县| 永丰县| 天峻县| 建阳市| 兴仁县| 临城县| 章丘市| 安陆市| 兴安县| 阿拉尔市| 广灵县| 临海市| 寻乌县| 鄂伦春自治旗| 沾益县| 文昌市| 达州市| 涟源市| 盈江县| 丹阳市| 江华| 万年县| 普兰店市| 马关县| 临沭县| 土默特左旗| 克拉玛依市| 连平县| 姚安县| 新竹县| 霍林郭勒市| 北海市| 桃江县| 宜昌市| 兴业县| 西平县|