MongoDB(课时18 修改器)
3.4.3.2 修改器(原子操作)
對MongoDB數據庫而言,數據的修改會牽扯到內容的變更,結構的變更(包含數組),所以在MongoDB在設計的時候就提供有一系列的修改器的應用,那么像之前使用的“$set”就是一種修改器。
1. $inc:主要針對于一個數字字段,增加某個數字字段的數據內容;
語法:{"$inc" : {"成員" : 內容}}
范例:將所有年齡為21歲的學生成績一律減少30,年齡加1
db.students.update({"age" : 21}, {"$inc" : {"score" : -30, "age" : 1}}) # 默認只改一條數據
db.students.update({"age" : 21}, {"$inc" : {"score" : -30, "age" : 1}}, false, true)
2. $set:進行內容的重新設置
語法:{"$set" : {"成員" : "新內容"}}
范例:將年齡是20歲的人的成績修改為89
db.students.update({"age" : 20}, {"$set" : {"score" : 89}})
3. $unset:刪除某個成員的內容
語法:{"$unset" : {"成員" : 1}}
范例:刪除“張三”的年齡與成績信息
db.students.update({"name" : "張三"}, {"$unset" : {"age" : 1, "score" : 1}})
執行之后指定的成員內容就消失了,相當于修改了表結構,而這次換成了集合結構。
4. $push:相當于將內容追加到指定的成員之中(輸出結果為數組形式)
語法:{"$push" : {成員 : value}}
范例:向“李四”添加“美術”課程
db.students.update({"name" : "李四"}, {"$push" : {"course" : "美術"}})
范例:向“張三”添加課程信息(以數組形式添加)
db.students.update({"name" : "張三"}, {"$push" : {"course" : ["語文", "數學"]}})
$push就是進行數組數據的添加操作使用的,如果沒數組則進行一個新數組的創建,如果有則進行內容的追加。
5. $pushAll:一次追加多個內容到數組里面
語法:{"$pushAll" : {成員 : 數組內容}}
范例:向“王五”的信息里面添加多個課程內容
db.students.update({"name" : "王五"}, {"$pushAll" : {"course" : ["美術", "音樂", "素描"]}})
6. $addToSet:向數組里增加一個新內容,只有這個內容不存在的時候才會增加
語法:{"$addToSet" : {成員 : 內容}}
范例:向“王五”中增加“跳舞”
db.students.update({"name" : "王五"}, {"$addToSet" : {"course" :?"美術"}})
因為美術不是新內容,所以沒變化。
db.students.update({"name" : "王五"}, {"$addToSet" : {"course" :?"跳舞"}})
db.students.update({"name" : "王五"}, {"$addToSet" : {"course" : ["美術", "音樂", "素描", "跳舞"]}})
7. $pop:刪除數組內第一個或最后一個數據
語法:{"$pop" : {成員 : 內容}} # 內容設置為-1表示刪除第一個,設置為1表示刪除最后一個
范例:刪除王五的第一個課程
db.students.update({"name" : "王五"}, {"$pop" : {"course" : -1}})
范例:刪除王五的最后一個課程
?db.students.update({"name" : "王五"}, {"$pop" : {"course" : 1}})
8. $pull:從數組內刪除一個指定內容的數據
語法:{"$pull" : {成員 : 數據}} # 語法中的數據是用來比對的,是此數據則刪除,不是則沒變化
范例:刪除王五的"跳舞"課程
db.students.update({"name" : "王五"}, {"$pull" : {"course" : "跳舞"}})
注意:$pop可一次性增加多個課程,但$pull只能一次性刪除一個課程,一次性刪除多個課程必須用$pullAll。
?
?
9. $pullAll:一次性刪除多個內容
語法:{"$pullAll" : {成員 : [數據, 數據, ...]}}
范例:刪除"谷大神 - A"中的三門課程
db.students.update({"name" : "谷大神 - A"}, {"$pullAll" : {"course" : ["語文", "英語", "政治"]}})
10. $rename:為成員名稱重命名
語法:{"$rename" : {舊的成員名稱 : 新的成員名稱}}
范例:將“張三”name成員名稱修改為“姓名”
db.students.update({"name" : "張三"}, {"$rename" : {"name" : "姓名"}})
?
轉載于:https://www.cnblogs.com/keye/p/7979064.html
總結
以上是生活随笔為你收集整理的MongoDB(课时18 修改器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我对对象和引用的理解
- 下一篇: c#中结构体和类的比较