博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb基本命令
阅读量:5147 次
发布时间:2019-06-13

本文共 3103 字,大约阅读时间需要 10 分钟。

日志

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

你可能感兴趣的文章
openflow1.5
查看>>
斐波纳契数列
查看>>
JAXB 实现java对象与xml之间互相转换
查看>>
AngularJS
查看>>
html数字变换插件,轻量级jquery数字动画插件
查看>>
计算机基础18春在线作业1,东师-计算机应用基础18春在线作业1-1.docx
查看>>
easyui onselect多选_select 多选 (EasyUI)
查看>>
openlayers3线段添加闪烁_在OpenLayers 3中动态地添加和删除轨道段
查看>>
w10系统老是自动息屏_windows10电脑系统定期自动熄灭屏幕,如何关闭该功能
查看>>
np 取最小值的坐标_numpy
查看>>
一元享移动怎么样_中国移动终于认怂?29元享100G流量还不限速,网友:后悔携号转网了...
查看>>
redis将散裂中某个值自增_java面试题30道
查看>>
c 通过成员变量地址 获取类对象地址_【C++学习笔记(十二)】之类中成员变量与成员函数的存储...
查看>>
a标签onclick不执行_你不知道的DOM操作
查看>>
object标签与embad掉钱_海口本地钯盐回收厂家-回收多少钱-源祥-金银饰品回收
查看>>
vue 属性是变量_Vue实战060:require与import的区别和使用
查看>>
json vue 对象转数组_vue $set详细教程 当数组或对象发生改变及时展示在页面上...
查看>>
lisp xy轴不等比缩放_Origin2017单y多x轴图片画法
查看>>
阿联酋esma认证_阿联酋发布全新的校车安全规则
查看>>
voip 音频采集时间_天津北星博辉互联网信息服务有限公司招聘日语音频审核
查看>>