MongoDB
可应对三高需求:
- 高并发
- 高效率存储
- 高可扩展性和高可用性的需求
应用操作方面共同特点
- 数据量大
- 写入操作频繁
- 价值较低的数据
面向文档的–由于MongoDB是NoSQL类型的数据库,它不是以关系类型的格式存储数据,而是将数据存储在文档中。这使得MongoDB非常灵活,可以适应实际的业务环境和需求。
临时查询-MongoDB支持按字段,范围查询和正则表达式搜索。可以查询返回文档中的特定字段。
索引-可以创建索引以提高MongoDB中的搜索性能。MongoDB文档中的任何字段都可以建立索引。
复制-MongoDB可以提供副本集的高可用性。副本集由两个或多个mongo数据库实例组成。每个副本集成员可以随时充当主副本或辅助副本的角色。主副本是与客户端交互并执行所有读/写操作的主服务器。辅助副本使用内置复制维护主数据的副本。当主副本发生故障时,副本集将自动切换到辅助副本,然后它将成为主服务器。
负载平衡-MongoDB使用分片的概念,通过在多个MongoDB实例之间拆分数据来水平扩展。MongoDB可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。
| SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
|---|---|---|
| database | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据记录行/文档 |
| column | field | 数据字段/域 |
| index | index | 索引 |
| table joins | 表连接,MongoDB不支持 | |
| primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
数据库操作
选择和创建数据库
use 数据库名称
如果数据库不存在则自动创建
查看有权限查看的所有的数据库命令
show dbs
或
show databases
注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
数据库名可以是满足以下条件的任意UTF-8字符串。
-
不能是空字符串(“”)。
-
不得含有’ '(空格)、.、$、/、\和\0 (空字符)。
-
应全部小写。
-
最多64字节。
-
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
删除数据库
db.dropDatabase()
集合的显式创建(了解)
db.createCollection(name)
- name: 要创建的集合名称
查看当前库中的表:show tables命令
show collections
或
show tables
集合的命名规范:
-
集合名不能是空字符串""。
-
集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
-
集合名不能以"system."开头,这是为系统集合保留的前缀。
-
用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。
集合的隐式创建
当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。通常我们使用隐式创建文档即可。
集合的删除
db.collection.drop()
或
db.集合.drop()
返回值
如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。
文档基本 CRUD
文档(document)的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。
文档的插入
(1)单个文档插入
使用insert() 或 save() 方法向集合中插入文档,语法如下:
db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
参数:
| Parameter | Type | Description |
|---|---|---|
| document | document or array | 要插入到集合中的文档或文档数组。((json格式) |
| writeConcern | document | optional |
| ordered | boolen |

本文介绍了MongoDB的基础知识,包括MongoDB的三高需求、文档存储方式、查询支持和索引创建。详细讲解了数据库操作,如选择、创建、删除数据库,以及集合的显式和隐式创建。还详细阐述了文档的基本CRUD操作,如插入、查询、更新和删除文档,展示了各种操作的实例。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



