mongoDB 小練習


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}}}])
相關文章
相關標籤/搜索