mongodb

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言


一、mongodb与架构

什么时候考虑mongodb:

1.数据量预计达到10亿

2.高qps

二、mongodb的隔离级别

majority:大多数确认,就返回

snapshot:读取最近快照,一般用他替代linearizable,保证在分布式多线程情况下不出现脏读、幻读、不可重复读

linearizable:线性的执行,开启后会单线程的执行

三、writeConcern和readConcern

writeConcern:写到几个节点后才算成功,值有0、1-n、majority,一般设置majority

readConcern:available所有可用的数据、local所有可用且属于当前分片的数据、majority大多数节点已提交、linearizable线性化读取文档、sanpshot最近快照的数据。

四、命令

powershell 复制代码
# 查看所有数据库
show databases

# 选择数据库(如果数据库不存在,不会报错;会隐式创建:当后期该数据库有数据时自动创建)
use 数据库名

# 删除数据库(先选中数据库)
db.dropDatabase()


# 查看所有集合
show collections

# 创建集合(插入数据会隐式创建)
db.createCollection('集合名')

# 删除集合
db.集合名.drop()


db.集合名.insert(json数据)
db.集合名.remove(条件 [,是否删除一条])

# 是否删除一条
- false删除多条,即全部删除(默认)
- true删除一条
db.集合名.update(条件, 新数据 [,是否新增, 是否修改多条])

# 新数据
- 默认是对原数据进行替换
- 若要进行修改,格式为 {修改器:{key:value}}

# 是否新增
- 条件匹配不到数据时是否插入: true插入,false不插入(默认)

# 是否修改多条
- 条件匹配成功的数据是否都修改: true都修改,false只修改一条(默认)

db.集合名.find(条件 [,查询的列])
db.集合名.find(条件 [,查询的列]).pretty()	#格式化查看

# 条件
- 查询所有数据	{}或不写
- 查询指定要求数据	{key:value}或{key:{运算符:value}}

# 查询的列(可选参数)
- 不写则查询全部列
- {key:1}	只显示key列
- {key:0}	除了key列都显示
- 注意:_id列都会存在

五、索引

powershell 复制代码
# 创建索引
db.集合名.createIndex(待创建索引的列:方式 [,额外选项])
# 创建复合索引
db.集合名.createIndex({key1:方式,key2:方式} [,额外选项])

# 参数说明:
- `待创建索引的列:方式`:{key:1}/{key:-1}
   1表示升序,-1表示降序; 例如{age:1}表示创建age索引并按照升序方法排列
- `额外选项`:设置索引的名称或者唯一索引等
   设置名称:{name:索引名}
   唯一索引:{unique:列名}

总结

感觉不是很重要的一个数据库

相关推荐
iAm_Ike5 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt6 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
tongluowan0077 小时前
MySQL中列数量及长度
数据库·mysql
-liming-7 小时前
单片机设计_串口调试工具
数据库·单片机·mongodb
鹿角片ljp7 小时前
从告警检测到智能研判:SQL 注入研判模型的设计与实践
数据库·sql
小新同学^O^8 小时前
简单学习 --> Spring事务
数据库·学习·spring
前进的李工9 小时前
MySQL慢查询日志优化实战
数据库·mysql·性能优化
KaMeidebaby9 小时前
卡梅德生物技术快报|禽类成纤维细胞 FISH 实验:鸟类性别染色体基因定位技术实现与数据验证
前端·数据库·其他·百度·新浪微博
ECT-OS-JiuHuaShan9 小时前
彻底定理化:从量子纠缠到量子代谢
数据库·人工智能·学习·算法·生活·量子计算