MongoDb數據庫操作命令集錦


1.mongoDB的啟動
        1.開啟服務 sudo mongod
        2.開啟客戶端  mongo 
        db.createUser({user:"bbb",pwd:"123456",roles:[{role:"read",db:"test"}]})
2.數據庫的操作:
        1. 查看所有的數據庫         show dbs
        2. 切換數據庫               use  xxx
        3. 查看數據庫的集合(表)     show  collections
        4. 數據庫的創建 有值自動創建
        5. 刪除數據庫              1.進入當前數據庫  2. db.dropDatabase()
        6. 查看當前數據庫           db
        7. 創建數據庫fruit    1.use fruit  2.db.createCollection("apple") 
           在創建表applea的時候就會自動創建數據庫fruit
3.集合(表)操作:
        1. 查看集合     show collections
        2. 創建集合     db.createCollection("xxx")
        3. 刪除集合     db.xx.drop()

4.文檔(行)的增刪改:
        1.增加數據 db.xx.insert({key:value})
            db.stu.insert({_id:1,name:"隔壁老萬",age:88,gender:false})
            
            data_dict = {
                name:"小明",
                age:12,
                gender:false
            }
            db.stu.insert(data_dict)

            db.stu.insert({_id:1,name:"王寶強",age:35,gender:false})
            db.stu.insert({_id:2,name:"陳羽凡",age:28,gender:false})
            db.stu.insert({_id:3,name:"賈乃亮",age:20,gender:false})

            db.stu.insert({_id:4,name:"馬蓉",age:16,gender:true})
            db.stu.insert({_id:5,name:"白百何",age:18,gender:true})
            db.stu.insert({_id:6,name:"李小璐",age:28,gender:true})
            db.stu.insert({_id:7,name:"PGone",age:88,gender:true,like:"洗頭發"})
            
        2. 刪除數據:db.xx.remove(刪除的條件)
             1.全部刪除
                db.stu.remove({})
             2.根據條件刪除: 默認是刪除 所有符合條件的數據
                db.stu.remove({age:28})
             3. 只刪除符合條件的第一個
                db.stu.remove({gender:true},{justOne:true})

        3.改 update: db.xx.update({查找的條件},{修改的內容}) 
            1. 修改內容: 默認其他原有字段刪除了 替換掉原有數據
                db.stu.update({age:20},{name:"皮幾萬"})
                db.stu.update({name:"白百何"},{like:"小鮮肉"})

            2. 保持原有的字段 加一個修飾 $set: 默認 只修改第一個且對已存在的原有屬性是替換,不存在的屬性是添加
                db.stu.update({age:35},{$set:{like:"喝牛奶"}}) // 把like:"喝牛奶"添加到原數據里面 並不是替換
                db.stu.update({name:"李小璐"},{$set:{age:10}}) // 把原數據中的age:28替換為age:10
                db.stu.update({gender:false}, {$set:{age:66}})

            3. 修改所有符合條件的數據 multi   把所有滿足條件的name換成"甜心"
                db.stu.update({gender:true}, {$set:{name:"甜心"}},{multi:true})
                //運行結果:
                // { "_id" : 4, "name" : "甜心", "age" : 16, "gender" : true }
                // { "_id" : 5, "name" : "甜心", "age" : 18, "gender" : true }
                // { "_id" : 6, "name" : "甜心", "age" : 28, "gender" : true }
                //  { "_id" : 7, "name" : "甜心", "age" : 88, "gender" : true, "like" : "洗頭發" }
        4.save: 針對是 _id 整個替換掉原id中的數據
                db.stu.save({_id:7,name:"特朗普",age:"70",gender:false})
                // 結果:{ "_id" : 7, "name" : "特朗普", "age" : "70", "gender" : false }
                db.stu.save({_id:1,name:"馬蓉"})
                // db.stu.save({name:"皮幾萬"}) 是錯誤寫法 因為save()必須有_id
5.文檔查詢簡單查詢:
            1.基本查詢 db.xx.find({查詢條件})
                1.查詢所有的數據 
                    db.stu.find()
                    db.stu.find({})
                2.默認查出 所有的符合條件的數據
                    db.stu.find({gender:true})

                3.查找符合條件的第一個
                    db.stu.findOne({gender:true})

                4. 格式化輸出 pretty()
                    db.stu.find({age:28}).pretty()

            2.條件運算符 $lt< $gt> $lte<= $gte>= $ne!= 數字對比
                // 年齡 大於18歲的人
                db.stu.find({age:{$gt:18}})

                // 年齡 不b等於18的
                db.stu.find( {age: {$ne:18}})

            3.邏輯運算 $and $or 
                1.$and 默認的查詢條件就是 且的關系
                    db.stu.find({age:28,gender:false})

                    $and:
                    db.stu.find({
                        $and:[
                            {age:28},
                            {gender:true}
                        ]
                    })
                2. $or 
                    // 年齡小於30或者 性別 男
                    db.stu.find({
                        $or:[
                            {age:{$lt:30}},
                            {gender:false}
                        ]
                    })
                3.混合使用 $and $or
                    // 年齡小於30必須性別 男, 或者年齡大於60
                    db.stu.find({
                        $or:[
                            {
                                $and:[
                                    {age:{$lt:30}},
                                    {gender:false}
                                ]
                            },
                            {age:{$gt:60}}
                        ]
                    })
                4.范圍運算: $in $nin
                    // 年齡范圍在 16,18,88
                    db.stu.find({
                        age:{$in:[16,18,88]}
                    })
                    db.stu.find({
                        name:{$nin:["賈乃亮"]}
                    })
                5.正則表達式:
                    1. /表達式/ 2.$regex:"表達式"
                    db.stu.find({
                        name:/凡/
                    })
                    {/*結果:{ "_id" : 2, "name" : "陳羽凡", "age" : 28, "gender" : false, "erzhan" : "piger" }*/}

                    db.stu.find({
                        name:{$regex:""}
                    })
                    忽略大小寫 i
                    db.stu.find({
                        name:/pgone/i
                    })
                    db.stu.find({
                        name:{$regex:"pgone",$options:"i"}
                    })
                6.自定義函數 $where:帶返回值的匿名函數
                    // 年齡大於18
                    db.stu.find({
                        $where:function () {
                            return this.age > 18
                        }
                    })

        查詢結果的顯示:
                    skip:跳過幾個查看
                        db.stu.find().skip(2)
                    limit:允許查看幾個
                        db.stu.find().limit(2)

                        db.stu.find().skip(2).limit(2)
                        db.stu.find().limit(2).skip(2)
                    sort: 升序 和降序 字段 1升序 -1降序
                        // 年齡排序
                        db.stu.find().sort({age:1})

                    投影: 你顯示哪些字段, 字段:1, 默認:0
                        db.stu.find({gender:true},{age:1,name:1})
                        
                    去重: distinct(去重的字段,{查詢條件})
                        db.stu.distinct("hometown", {age:{$lt:100}})
Demo

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM