数据库_mongoDB
1 介绍
MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。字段值可以包含其他文档,数组及文档数组。其数据结构非常松散,常用于存储比较复杂灵活的数据结构。
MongoDB 基于分布式文件存储,介于关系数据库和非关系数据库之间;是非关系数据库当中功能最丰富,最像关系数据库的。
2 基本概念
- 数据库:数据库用于保存一组相关数据,由集合组成;相当于关系数据库中的库。
- 集合:集合用来表示一个实体,如学生集合;集合由文档组成,相当于关系数据库中的表。
- 文档:文档表示一条记录,比如一位同学可以是一个文档,相当于关系数据库中的记录。
3 用法
1 | docker pull mongo:5.0.18 |
4 操作
- 查看服务器状态
1 | > db.serverStatus() |
- 查看所有数据库
1 | > show dbs |
- 选择数据库 (如库不存在,则创建它)
1 | > use fastgpt |
- 查看当前数据库
1 | > db |
- 查看数据库下的集合
1 | > show collections |
- 查看集合中的数据
1 | > db.集合名.find() |
5 使用体会
每个文档都是一个由字段(field)和对应的值(value)组成的 JSON 格式的文档。即使在同一个集合中,也不要求每个文档有相同的 key,扩展起来非常方便。
使用时,不需要事先定义好数据结构,可动态添加字段,对于不确定的业务非常友好。它常用的场景是存储半结构化或不断变化的数据。与 pgsql 相比,mongodb 更适合存储内容不确定的文档型数据,如日志、JSON 数据,用户配置等。
对于存储文件,MongoDB 适合存储小型二进制文件(如图片、音频、PDF),但对于较大的二进制文件,通常更推荐将其存储在文件系统中,并在 MongoDB 中存储文件路径或元数据。以分离文件存储和数据库管理。
与存储在 pgsql 中的 json 字段中的数据相比,mongodb 更适合灵活的查询,查询性能更好。
示例一个使用场景:mongodb 存储纯文本,比如书的文本内容,数据不多且易于搜索;而将对应的 pdf, word, epub 非明文数据存储在文件系统中。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.