1 建立數據庫名爲 grade
> use grade
switched to db grade
2 建立集合 class
3 插入若干數據 格式以下
{name:xxx,age:xxx,sex:xx,hobby:[xx,xx,xx]}
age : 7~14
hobby: draw, dance , running , sing, football , basketball, computer, python
> db.class.find()
4 查找
1.查看全部人信息 db.class.find() 2.查看年齡爲 8 歲信息 db.class.find({age:8}) 3.查看年齡大於 10 歲信息 db.class.find({age:{$gt:10}}) 4.查看年齡 8-12 歲信息 db.class.find({age:{$in:[8,9,10,11,12]}}) 5.查看年齡 7歲 且 喜歡畫畫的 男生信息 db.class.find({age:7,hobby:"draw",sex:"b"}) 6.查看年齡 小於8歲 或者 大於12歲的學生 db.class.find({$or:[{age:{$lt:8}},{age:{$gt:12}}]}) 7.查看年齡 9歲 或者 11歲的學生 db.class.find({$or:[{age:12},{age:9}]}) 8.查找有兩個興趣的學生 db.class.find({hobby:{$size:2}}) 9.查找喜歡計算機的同窗 db.class.find({hobby:"computer"}) 10.查找既喜歡畫畫又喜歡跳舞的 db.class.find({hobby:{$all:["draw","dance"]}}) db.class.find({hobby:"dance",hobby:"draw"}) 11.統計興趣愛好有三項的人數 db.class.find({hobby:{$size:3}}) 12.找出班級中年齡第二大的同窗 db.class.find().sort({"age":-1})[1] 13.查看本班興趣愛好行涵蓋範圍 db.class.distinct("hobby") 14.找到班級中年齡最小的三位同窗 db.class.find().sort({age:1}).limit(3)
練習第二階段
使用以前的數據庫 1. 將小紅年齡改爲8歲,興趣愛好改爲 跳舞畫畫 db.class.updateOne({name:"小紅"},{$set:{age:8, hobby:["draw","dance"]}}) 2. 追加小明的興趣愛好唱歌 db.class.updateOne({name:"小明"},{$push:{hobby:"sing"}}) 3.小王多了興趣愛好吹牛,打籃球 db.class.updateOne({name:"小明"},{$pushAll:{hobby:["fox","basketball"]}}) 4.小李興趣要增長跑步唱歌,可是不能是和已有的同樣 db.class.updateOne({name:"小明"},{$addToSet:{hobby:{$each:["run","sing"]}}}) 5.班級全部年齡加一 db.class.updateMany({},{$inc:{age:1}}) 6.刪除小明的sex屬性 db.class.updateOne({},{$unset:{sex:""}}) 7.小李第一個興趣愛好不要了 db.class.updateOne({name:"小李",{$pop:{hobby:-1}}}) 8.刪除小紅興趣中的畫畫唱歌 db.class.updateOne({name:"小紅",{$pullAll:{hobby:["draw","sing"]}}})
三階段練習
使用 grade 數據庫完成 1.刪除全部年齡 小於8歲,或者 大於12歲 的學生 db.class.deleteMany({$or:[{age:{$lt:8}},{age:{$gt:12}}]})
2.給小紅第二項愛好變爲 跳舞 db.class.updateOne({name:"小紅"},{$set:{"hobby.1":"dance"}})
3.刪除興趣愛好中沒有 畫畫 的學生 db.class.deleteMany({},{hobby:{$nin:["draw"]}})
4.給小王增長一個域: 備註:{民族:"回族", 習俗:"不吃豬肉"} db.class.updateOne({name:"小王"},{$set:{備註:{民族:"回族", 習俗:"不吃豬肉"}}})
5.修改小王的備註域, 增長項: 宗教:"伊斯蘭教" db.class.updateOne({name:"小王"},{$set:{"備註.宗教":"伊斯蘭教"}})
四階段練習
使用 grade 數據庫完成 1. 將全部男生按照年齡升序排序結果不顯示 _id db.class.aggergate([{$match:{sex:"b"}},{$sort:{age:1}},{$project:{_id:0}}]) 2. 統計班級是否有重名同窗 db.class.aggergate({[$group:{_id:"$name",num:{$sum:1}}},{$match:{num:{$gt:1}}}])