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}})
