mongodb更新操作 update
阿新 • • 發佈:2018-12-24
在這裡解釋一下官網的三個更新操作作為筆記
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屬性