mongodb中shell基本常用操作命令
shell常用操作
查看数据库版本
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 colloctions
shell里的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({})
创建完用户后在配置文件中开启用户验证,保存重启

权限级别:

document数据插入
给指定数据库添加集合并添加记录
db.[documentName].insert({key:"value"})
批量插入(shell不支持批量插入,想要完成批量插入使用shell的for循环)
for(var i=0;i<10;i++){db.[ducumentName].insert({name:i})
}

document数据删除
删除相应文档中数据
db.[documentName].remove({删除条件})
例子:
db.[documentName].remove({age:2}) 删除age=2的数据
删除列表中所有数据(集合的本身和索引不会删除)
db.[documentName].remove()

document数据更新
强硬的文档替换更新操作(一般不使用,主键冲突的时候会报错)
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...} 一次性删除多个指定的值

document数据查询
插入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
查询指定字段(默认自带的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)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
