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)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部