一、mongoDB的启动 1.开启服务 sudo mongod 2.开启客户端 mongo db.createUser({user:"bbb",pwd:"123456",roles:[{role:"read",db:"test"}]}) 二、数据库的操作 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 三、集合(表)操作 1. 查看集合 show collections 2. 创建集合 db.createCollection("xxx") 3. 删除集合 db.xx.drop() 四、文档(行)的增删改 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 五、文档查询简单查询 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}})
MongoDb常用操作命令
最新推荐文章于 2022-02-13 23:39:09 发布