mongodb基本命令

日志

show dbs  ; show collections; use mydb1(插入数据,数据库才被创建) db.c1.insert({name:"zhangsan",age:20}) ; db.help() ;  db.dropDatabase()

创建集合:显示创建:db.createCollection(“集合名称”);隐式创建: db.custom.insert({name:”zhangsan”,age:20}) ; db.user.remove(); db.user.drop()

for(var i=0;i<10000;i++) {
  Db.集合名称.insert({name:”zhangsan”+i,age:i})
}
db.集合名称.count();db.集合名称.remove({删除条件})

 查询:

db.集合名称.find({条件});db.集合名称.findOne() (查询第一个);db.集合名称.find({},{});(第一个json 表示查询条件;第二个json 表示那些字段 l name:true)

db.collection.find({field:{~ :value}});(

$gt(大于) $lt(小于) $gte(大于等于) $ne(不等于)$lte(小于等于) 

$all 其中的value是数组 ;例$all:[1,2]

)

db.user.find({address:{$in:[1]}})  $nin $in 取反db.user.find({adress:{$nin:[1]}})
$or 相当于关系型数据库当中的or   db.user.find({$or:[{name:“张三”},{age:3}]})

查看某个键是存在。1表示存在,0表示不存在
db.customer.find({name:{$exists:1}})

筛选的个数;sort({age:-1}).skip(2).limit(3)

筛选后的结果; db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

mongodb游标;

var x = db.user.find();

x.hasNext() 

x.next();

8.Mongodb更新操作:
Db.collection.update(criteria,objNew,upsert,multi)
Criteria:查询条件的对象 (相当于where)
objNew: 设置更新内容的对象 (相当于set)
Upsert:存在更新,不存在插入(0)
Multi:多个条件全部更新(1)
例如: db.user.update({name:”张三”},{name:”李四”})
使用update 进行数据的更新,这样的更新会出现覆盖的现象。
使用$set如果存在则创建,如果不存在则更新
Update user set address= ‘bj’ where name =”user1”,
Db.user.update({name=”user1”},{$set:{address:”bj”}},0,1)
Db.user.update({name:”user1”},{$inc:{age:1}}),必须保证age是整型
$unset用来删除某个键
Db.user.update({name:”user1”},{$unset:{address:1}},0,1)
9.Mongodb索引的使用
查看查询扫描的行数和时间:
db.user.find({name:”zhangsan”}).explain();

9.1创建普通索引:(提高查询性能)
db.user.ensureIndex({key:1})

系统表当中可以查看索引:
db.system.indexes.find()
其中_id 会自动的创建索引

删除索引:
db.user.dropIndex({key:1})

将集合删除的时候,所有的索引都将删掉。

9.2创建唯一索引:(保证不重复,同时加速)
建立唯一索引:
db.user.ensureIndex({name:1},{unique:1})

删除索引:
db.user.dropIndex({key:1})
解析索引:
db.user.find({name:”zhangsan”}).explain()

Db.user.stats();

删除集合所有的索引都会删除

10.固定集合:(应用于日志)
事先创建且有大小固定的集合。
固定集合像环形队列,如果空间不足,最早的文档就会被删除。

db.createCollection(“collectionName”,{capped:true,size:100000,max:100})
其中 size 集合的大小,max是文档的数量
容量没满,根据文档的数量来工作,如果容量满了,根据文档的数量来工作。

11.备份和恢复(整库备份)
mongodump(备份) 和(mongorestore)(恢复)

备份数据:
mongodump -h localhost:27017 -d test -o e:mongodb\bak
-h 地址和端口
-d 备份的数据库
-o 备份地址

备份的数据库名后缀为bson,为json存储文件的二进制的方式

db.dropDatabase(); 将所有的数据库删掉

恢复数据:
mongorestore -h localhost:27017 -d test -directoryperdb E:mongodb\bak\test

-h 恢复数据库的名称和端口
-d 数据库的名称
-directoryperdb 恢复地址

12.导入和导出(单表备份)
备份和恢复之间的区别:
导入和导出的文件为文本文件(直接看的),
备份和恢复的文件为bson类型的文件
导出:
mongoexport -h localhost:27017 -d test -c person -o e:\mongodb\bak\person
-h :数据库的地址
-d:使用的数据库
-c:导出的集合
-o:导出的文件名

导入:
db.person.drop() //将集合删除掉
mongoimport -h localhost:27017 -d test -c person e:\mongodb\bak\person
13.安全和认证
如果开启服务的时候
mongod --dbpath=E:\mongodb\data --auth (登陆必须经过安全性检查)
创建admin数据库
admin数据库中的用户被视为超级管理员(即管理员)
use admin
db.addUser(“root”,”root”)

创建普通用户:
use test
db.addUser(“zhangsan”,”123”) //增删改查
db.addUser(“lishi”,”123”,true) //不能进行写操作

超级管理员和普通用户之间的区别:
超级管理员:可以进入任何的数据库进行操作
普通用户: 只能在当前的数据库进行操作
db.auth(“zhangsan”,”123”)
exit 退出
db.auth(“lisi”,”123”)

超级管理员只能够在admin数据库当中进行验证(可以进行任意的操作)
db.

转载于:https://www.cnblogs.com/glblog/p/5749785.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值