1. 程式人生 > >mongodb更新操作 update

mongodb更新操作 update

在這裡解釋一下官網的三個更新操作作為筆記

db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   }
)

這個是指一次更新一跳記錄,item值符合的進行更新操作

db.inventory.updateMany(
   { "qty": { $lt: 50 } },
   {
     $set: { "size.uom": "in", status: "P" },
     $currentDate
: { lastModified: true } } )

這個是指一次性更新多條記錄,{ "qty": { $lt: 50 } }指屬性名為qty的值小與50的資料

mongodb條件操作符,"$lt", "$lte", "$gt", "$gte", "$ne"就是全部的比較操作符,
對應於"<", "<=", ">", ">=","!="。
原子操作符:"$and“, "$or“, "$nor“。
or查詢有兩種方式:一種是用$in來查詢一個鍵的多個值,另一種是用$or來完成多個鍵值的任意給定值。
$in相當於SQL語句的in操作。
$nin不屬於。
$not
與正則表示式聯合使用時候極其有用,用來查詢哪些與特定模式不匹配的文件。 $slice相當於陣列函式的切片,檢索一個數組文件並獲取陣列的一部分。限制集合中大量元素節省頻寬。 理論上可以通過 limit() 和 skip() 函式來實現,但是,對於陣列就無能為力了。 $slice可以指定兩個引數。 第一個引數表示要返回的元素總數。第二個引數是可選的。如果使用的話,第一個引數定義的是偏移量, 而第二個引數是限定的個 數。第二個引數還可以指定一個負數。 $mod取摸操作。 $size操作符允許對結果進行篩選,匹配指定的元素數的陣列。 $exists操作符允許返回一個特定的物件。注意:當前版本$exists
是無法使用索引的,因此,使用它需要全表掃描。 $type操作符允許基於BSON型別來匹配結果。
db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

這個會把item 值相同的資料,自item屬性之後的屬性全部替換為instock屬性