跳到主內容

MongoDB教育訓練-04

Array 查詢

image-1639636664729.png

Array 查詢 操作

  • $all
  • $size(少用無法使用index)
  • $element 元素滿足

 

image-1639636792202.png

#age > = 18 && age <= 3 , array 其中一個值滿足其中一個條件即可
age : { $gt : 18, $lt: 30}

#age > = 18 && age <= 3 , array 其中一個值滿足所有條件
age : { $elemMatch { $gt : 18, $lt: 30}}

image-1639636930873.png

image-1639637035674.png

image-1639637083583.png


排序

image-1639637186726.png

image-1639637211917.png

_id: 0 #不顯示id

image-1639637453427.png


更新

  • updateOne : 更新查詢第一筆
  • updateMany: 更新所有

image-1639637602587.png

 

更新欄位

image-1639637827684.png

image-1639637871930.png

# 加減
$inc : +
# 乘
$mul: *

image-1639637930449.png

#大於更新
$max
#小於才更新
$min 

image-1639638023450.png

image-1639638110007.png

 

#q1
db.inspections.updateMany({result:"Completed"},{$set:{"result":"No Violation Issued"}})
#q2
db.inspections.updateMany({result:'Fail'},{$set:{fine:100}})
#q3
db.inspections.updateMany({"address.city": "ROSEDALE"}, {$inc: {fine: 150}})

Array 新增移除

$pop : 1 (最後元素)
$pop : -1 (第一個元素)

# 檢查不存在才新增
$addToSet

image-1639638757601.png

image-1639638822064.png

image-1639638913289.png

image-1639638947708.png

基本mongoDB 基本無lock,每次更新檢更新序號,是否為最新,若不是最新,嘗試合併最新,重新更新

image-1639639033397.png