Mongodb04 - 數據操作(數組)
1、首先在MongoDB裏面是支持數組保存的,一旦支持數組保存,需要針對數組的數據進行匹配;
(01)、範例:保存一部分數組數據
db.students.insert({"name":"古大神 - A", "age":15, "sex": "男", "seore": 90, "adderss": "海澱區", "course": ["語文", "數學", "英語", "音樂", "美術"]});
db.students.insert({"name":"古大神 - B", "age":16, "sex": "男", "seore": 88, "adderss": "海澱區", "course": ["語文", "數學", "政治"]
db.students.insert({"name":"古大神 - C", "age":19, "sex": "女", "seore": 98, "adderss": "海澱區", "course": ["語文", "音樂", "美術"]});
db.students.insert({"name":"古大神 - D", "age":16, "sex": "男", "seore": 80, "adderss": "朝陽區", "course": ["語文", "美術"]});
(02)、此時的數據中包括了數組數據,而後需要針對於數組數據進行判斷,可以使用幾個運算符: $all、$size、$slice、$elemMatch
(03)、範例:查詢同時參數語文和數學課程的學生 => {"$all": ["語文","數學"]} => "$all" 篩選內容必須包含篩選條件及更多內容的項,只能多不能少;
db.students.find({"course": {"$all": ["語文", "數學"]}}).pretty();
“$all”計算可以用在數組上,也可以用於一個數據的匹配上 => db.students.find({"adderss": {"$all": ["海澱區"]}}).pretty();
(04)、既然在集合中保存了數組信息,那麽數組就可以利用索引操作:key.index的方式定義索引
範例:查詢數組信息中第二個內容(index = 1),為數學的信息 => db.students.find({"course.1": "數學"}).pretty();
(05)、範例:查詢出值參加兩門課程的學生:使用運算符 $size 來進行數值的控制 => db.students.find({"course": {"$size": 2}}).pretty();
(06)、控制數組返回的數量:使用$slice控制
範例:返回年齡為19歲所有學生的信息,但是要求只顯示參加兩門課 => db.students.find({"age": 19}, {"course": {"$slice": 2}}).pretty();
# 2:整數表示前兩門,-2:表示後兩門,[1,2]: 表示跳過第一個後面兩個
Mongodb04 - 數據操作(數組)