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的时候就会自动创建数据库fruit3.集合(表)操作: 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()必须有_id5.文档查询简单查询: 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}})