数据库:数据库----集合----数据
show databases showdbs----查看数据库
use 数据库名
通过use选中数据库,dbdropDatabase()删除数据库
注:数据库为隐式创建,在mongo中未存在的数据库不会报错,后期添加集合时会自动创建数据库
集合:集合的添加也为隐式添加
db.createCollection(‘集合名’)----创建集合(不常用,一般隐式创建)
给集合添加数据 每条数据生成的同时会有唯一的id自动生成,也可以手动创建id
db.集合名.insert(JSON数据)
db.c1.insert({unmae:"heihei",age:"18"})
对象可以不带双引号,查看时会自动补充
//一次性插入多条数据 使用数组 db.集合名.insert([ {name:"nx"}, {age:12}, {sex:"man"} ])
//使用for循环,可以一次性输出10条集合,但是前几条不显示 for(var i =1;i<=10;i++){ db.c2.insert({uname:"a"+i,age:i}) }
查看集合数据 db.集合名.find().pretty()----美化格式
db.集合名.find() ----------------db.集合名.find(条件 [,查询的列])
条件:
{age:6}-----查询age=6的数据
{age:1,sex:“男”}------还要查询sex=男的数据
查询的列:
不写 --查询全部列
{age:1} 只显示age列
{age:0} 除了age列(字段都显示)
- 查看文档
db.集合名.update(条件 ,新数据[是否新增,是否修改多条])----(最后为true时,修改所有)
db.集合名.update(条件,新数据)
新数据 {修改器:{键:值}}
db.c1.update({'uname':'zs0'},{$set: {uname:"zs22"}})---修改 db.c1.update({'uname':'zs0'},{uname:"zs22"})---直接替换啦
- 删除文档
db.集合名.remove(条件 [,是否删除一条]) (true是 false否 默认)
排序,分页:
- 排序
db.集合名.find().sort(json数据)
sort(键:就是要排序的列/字段、值:1(升序) -1(降序))
- Limit,skit方法 —count()统计总数量
db.集合名.find().sort({age:1}).skip(数字).limit(数字) 或 db.集合名.find().skip(数字).limit(数字)
说明:skip跳过指定数量(可选),limit限制查询的数量
skip计算公式:(当前页 - 1) *每页显示条数
聚合查询:
语法:
db.集合名.aggregate({
{管道:{表达式}}
…
})
------------------ db.c1.aggregate([ { $group:{ _id:null,----不分组 total_num:{$sum:1}, total_avg:{$avg:"age"} } } ]) -------------------多管道 db.c1.aggregate([ {$group:{ _id:"$sex", rs:{$sum:1} }}, {$sort:{ rs:1} } ])
优化索引:
- 创建索引:
- 优化索引:
db.集合名.createIndex(待创建索引的列 [,额外选项])
参数:
待创建索引的列:{键:1,… ,键:-1}
如:{age:1}表示创建age索引并使用升序的方式储存
、、、、、、、
额外选项:设置索引的名称或者唯一的索引等
给索引自定义名称:db.集合名.createIndexes({name:1},{name:“webopenfather”})
索引名称
组合索引:db.集合名.createIndexes({name:‘1’,age:1})
- 删除索引
db.集合名.dropIndexes()—删除所有
db.集合名.dropIndex(索引名)
- 查看索引
db.集合名.getIndexes()
- 设置唯一索引
db.c1.createIndex({name:1},{unique:true})
- 分析索引
db.c1.find({age:18}).explain(‘executionStats’)
权限机制:添加超级管理员 只有登录进去才能查看
- 指定数据库,然后创建用户
use admin db.createUser({ "user":"admin",//用户名 "pwd":"admin888",//密码 "roles":[{ role:"root",//身份 db:"admin"//数据库 }] })
- 2.退出 卸载服务
bin\mongod --remove (先ctrl c退出,然后在bin目录下面输入)
(安装需要身份验证的服务):只有登录用户时,才能查看数据库
- 3.在mongo所在的目录下:
mongod --install --dbpath d:\data --logpath d:\log\mongodb2.log --auth (上面为个人路径) 重新启动:net start mongodb
- 4.启动服务 通过超级管理员账号登录
net start mongodb
登录:
语法1:.mongo服务器ip地址:端口/数据库 -u用户名 -p 密码
mongo localhost:127.0.0.1:27017\admin -u admin -p admin888 xxxx
语法2: a-先登录 b-选择数据库 c-输入db.auth(用户名,密码)
db.auth(‘admin’,‘admin888’)