1. 程式人生 > >Mongodb04 - 數據操作(數組)

Mongodb04 - 數據操作(數組)

一個數 -s 針對 對數 數量 nbsp 判斷 年齡 dex

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 - 數據操作(數組)