查看数据库版本
db.version()查看当前数据库机器的连接地址
db.getMongo()创建一个数据库(如果use之后没有创建任何集合。系统就会删除这个数据库。)
use [databaseName]删除数据库(如果没有选择任何数据库,会删除默认的test数据库)
db.dropDatabase() 查看有没有删除 show dbs显示当前数据库
db查看所有数据库
show dbs创建集合文档
db.createCollection('a')查看数据库中所有文档(documentName)
show collections查询定制文档的数据
查询所有 db.[documentName].find() 相当于select * from table 查询第一条数据 db.[documentName].findOne()重命名集合
db.c.renameCollection("d")删除数据库中集合(documentName)
db.[documentName].drop() 查看有没有删除 show colloctionsshell里的help
全局的help() 数据库的help:db.help() 数据库中文档的help:db.[documentName].help()进入管理数据库
use admin创建管理员用户,root权限(创建管理员角色用户的时候,必须到admin下创建。删除也是)
用户一 db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } ) 用户二 db.createUser( { user: "mydb", pwd: "mydb", roles: [ { role: "dbAdmin", db: "mydb" } ] } )查看当前用户列表
db.system.users.find()查看创建的管理员用户
show users验证用户是否可用,返回1 表示成功
db.auth("root","root")删除用户 删除单个用户
db.system.users.remove({user:"XXXXXX"})删除所有用户
db.system.users.remove({})创建完用户后在配置文件中开启用户验证,保存重启
权限级别:
给指定数据库添加集合并添加记录
db.[documentName].insert({key:"value"})批量插入(shell不支持批量插入,想要完成批量插入使用shell的for循环)
for(var i=0;i<10;i++){ db.[ducumentName].insert({name:i}) }删除相应文档中数据
db.[documentName].remove({删除条件}) 例子: db.[documentName].remove({age:2}) 删除age=2的数据删除列表中所有数据(集合的本身和索引不会删除)
db.[documentName].remove()强硬的文档替换更新操作(一般不使用,主键冲突的时候会报错)
db.[documentName].updata({更新条件},{更新内容}) 例子: var p = db.[documentName].findOne() db.[documentName].update(p.{name:"hello"})insertOrUpdate操作
db.[documentName].update({更新条件},{更新内容},true) 意思是当查询条件满足时执行更新操作,不满足执行插入操作批量更新操作
db.[documentName].update({更新条件},{$set:{将更新内容放在修改器中}},false,true) 例子 db.[documentName].update({name:"hello"},{$set:{name:"world"}},false,true) 表示把所有neme=hello符合条件的都修改成world,false表示不启用insertOrUpdate,true表示启用批量更新常用修改器介绍
$set:{} 如果存在键进行修改,不存在追加 $inc:{key:步长} 为指定键对应的数字类型的数值进行加减操作 $unset:{key:1} 删除指定的键 $push:{数组键:value} 往数组中追加值,如果未发现数据键则创建并追加 例子: db.[documentName].insert({_id:5,name:5,books:[]}) db.[documentName].update({_id:5},{$push:{books:"books数组中值"}}) $pushAll:{数组键:[var1,var2,va3]} 一次追加多个值 $addToSet:{数组键:val} 目标数组存在此项则不操作,不存在则追加进去 $pop:{数组键:val} 从指定数组删除一个值当val=1删除最后一个值var=-1删除第一个值 $pull:{数字键:val} 删除一个指定数组中的值 $pull:{数组建:val1,val2,val...} 一次性删除多个指定的值插入500条数据
for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()}); }设置每页显示50条记录
DBQuery.shellBatchSize=50;查看第一条
db.log.findOne()查看总记录数
db.log.count()查看uid为100 的
db.log.find({uid:100});
find 准备素材:
var persons = [{ name:"jim", age:25, email:"75431457@qq.com", c:89,m:96,e:87, country:"USA", books:["JS","C++","EXTJS","MONGODB"] }, { name:"tom", age:25, email:"214557457@qq.com", c:75,m:66,e:97, country:"USA", books:["PHP","JAVA","EXTJS","C++"] }, { name:"lili", age:26, email:"344521457@qq.com", c:75,m:63,e:97, country:"USA", books:["JS","JAVA","C#","MONGODB"] }, { name:"zhangsan", age:27, email:"2145567457@qq.com", c:89,m:86,e:67, country:"China", books:["JS","JAVA","EXTJS","MONGODB"] }, { name:"lisi", age:26, email:"274521457@qq.com", c:53,m:96,e:83, country:"China", books:["JS","C#","PHP","MONGODB"] }, { name:"wangwu", age:27, email:"65621457@qq.com", c:45,m:65,e:99, country:"China", books:["JS","JAVA","C++","MONGODB"] }, { name:"zhaoliu", age:27, email:"214521457@qq.com", c:99,m:96,e:97, country:"China", books:["JS","JAVA","EXTJS","PHP"] }, { name:"piaoyingjun", age:26, email:"piaoyingjun@uspcat.com", c:39,m:54,e:53, country:"Korea", books:["JS","C#","EXTJS","MONGODB"] }, { name:"lizhenxian", age:27, email:"lizhenxian@uspcat.com", c:35,m:56,e:47, country:"Korea", books:["JS","JAVA","EXTJS","MONGODB"] }, { name:"lixiaoli", age:21, email:"lixiaoli@uspcat.com", c:36,m:86,e:32, country:"Korea", books:["JS","JAVA","PHP","MONGODB"] }, { name:"zhangsuying", age:22, email:"zhangsuying@uspcat.com", c:45,m:63,e:77, country:"Korea", books:["JS","JAVA","C#","MONGODB"] }] for(var i = 0;i<persons.length;i++){ db.persons.insert(persons[i]) }查询指定字段(默认自带的id去掉)
db.persons.find({},{_id:0,name:1,age:1,country:1})查询出年龄在25-27之间的学习生
db.persons.find({age:{$gte:25,$lte:27}},{_id:0,name:1,age:1})查询出所有不是韩国国籍学生的数学成绩
db.persons.find({country:{$ne:'Korea'}},{_id:0,name:1,m:1,country:1})查询国籍是中国或者是美国的学生
db.persons.find({country:{$in:['USA','China']}},{_id:0,name:1,country:1})查询国籍不是中国或者美国的学生
db.persons.find({country:{$nin:['USA','China']}},{_id:0,name:1,country:1})查询语文成绩大于85或者英语大于九十的学生信息
db.persons.find({$or:[{c:{$gt:85}},{e:{$gt:90}}]},{_id:0,name:1,e:1,c:1})把中国国籍的学生上心新增sex键
db.persons.update({country:'China'},{$set:{sex:'M'}},false,true)查询sex为null 的学习
db.persons.find({sex:{$in:[null]}},{_id:0,name:1,sex:1})查询名字中存在“li”的学生信息
db.persons.find({name:/li/i},{_id:0,name:1,sex:1})查询名字中不存在“li”的学生信息
db.persons.find({name:{$nin:[/li/i]}},{_id:0,name:1,sex:1})查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:['MONGODB','JS']}},{_id:0,name:1,books:1})查询第二本书是JAVA的学生信息
db.persons.find({'books.1':'JAVA'},{_id:0,name:1,books:1})查询出Jim书架中第2~4本书
db.persons.find({name:"jim"},{books:{"$slice":[1,3]}})查询出最后一本书
db.persons.find({name:"jim"},{books:{"$slice":-1},_id:0,name:1})分页与排序
查询出persons文档中前5条数据
db.persons.find({},{_id:0,name:1}).limit(5)查询出persons文档中5~10条的数据
db.persons.find({},{_id:0,name:1}).limit(5).skip(5)Sort返回按照年龄排序的数据[1,-1]
db.persons.find({},{_id:0,name:1,age:1}).sort({age:1})三条数据位一页进行分页
第一页db.persons.find({},{_id:0,name:1}).limit(3).skip(0) 第二页db.persons.find({},{_id:0,name:1}).limit(3).skip(3)