MongoDB 入门教学贴 从术语到操作 (约束怎么建立 内部培训贴)
开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2330人左右 1 + 2 + 3 + 4 +5 + 6 + 7)(1 2 3 4 5 群均已爆满,请不要在问有没有位置谢谢)
最近由于某些原因,要培训两个非MongoDB 的DBA掌握MongoDB的一些知识,好投入战斗,想着写教案的时候,还不如写一个入门贴。
什么是MongoDB: MongoDB 是一款高性能的分布式存储可进行横向扩展的自带高可用协议和功能的存储数据以Json格式数据为主的数据库产品,客户可以选择的产品主要有三种,1 开源产品 2 付费企业级的数据库 3 MongoDB Atlas
国内一般在使用产品的时候,多使用的是开源的产品,在数据的一些特殊功能方面有一些缺失,相对于企业版的数据库产品。
我们直接说,企业版多了什么功能,主要功能在审计和 in-memory引擎
In-Memory Storage Engine
Auditing
Kerberos Authentication
LDAP Proxy Authentication and LDAP Authorization
Encryption at Rest
所以对于审计功能有要求的可以考虑购买企业版的MongoDB.
MongoDB 中的一些术语和知识
1 表不叫表,叫collection 集合
2 行不叫行 ,称为document
3 在一行里面或者在一个doucument 里面会存在 key-value pairs, 这里我们称之为 fields and values .
4 replica set 副本集:在MongoDB,生产数据库是不允许单机呈现的,因为会出现数据安全性的问题,所以在生产环境中,应该是至少3节点的模式来进行数据库的安装和呈现的。
5 WiredTiger: WiredTiger 是MongoDB的数据库处理引擎,与MySQL innodb 类似,也是第三方开发的数据库引擎,在MongoDB 上使用,最早的MongoDB的数据库引擎不是 wiredTiger ,WiredTiger 数据库引擎彻底改变了MongoDB 的一些数据处理方式和性能。
6 _id 与其他的数据库不同,在MongoDB 是自己产生主键,我们称之为object_id,这里我们建议,不要自定义主键,而是要使用object_id , 在MongoDB 中表达为_id
7 Schema 无模式,这里MongoDB 的数据组成方式并不是和传统数据库一样,而是可以每一行与每一行的数据组成的构成都可以不一样,但这里不建议这样进行设计。同时MongoDB 中也有约束,可以通过约束来指定文档中的结构。
8 Index ,与传统数据库类似,MongoDB中也存在索引,但使用的方式与类型与传统数据库略有不同,在属性上也有一些区别.
9 慢查询:在一些数据库中的慢查询以秒来计算,在MongoDB中的慢查询相对传统数据库维度要更小一点,比如一般慢查询的阀值在 500毫秒等
10 聚合:在MongoDB中也是可以对数据进行类似传统数据库的聚合操作的,有相关的一些语句的写法来进行相关的操作。
基本命令:
1 建立或打开一个数据库,这里注意,在MongoDB里面没有建库的命令,如果要建立或打开一个数据库,都用use 命令即可
> use test<br>switched to db test<br>> <br>> <br>> show dbs;<br>admin 0.000GB<br>config 0.000GB<br>local 0.000GB<br>> <br>> db<br>test<br>> show dbs;<br>admin 0.000GB<br>config 0.000GB<br>local 0.000GB<br>> <br><br>