当前位置: 首页 > news >正文

数据库_mongoDB

1 介绍

MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。字段值可以包含其他文档,数组及文档数组。其数据结构非常松散,常用于存储比较复杂灵活的数据结构。

MongoDB 基于分布式文件存储,介于关系数据库和非关系数据库之间;是非关系数据库当中功能最丰富,最像关系数据库的。

2 基本概念

  • 数据库:数据库用于保存一组相关数据,由集合组成;相当于关系数据库中的库。
  • 集合:集合用来表示一个实体,如学生集合;集合由文档组成,相当于关系数据库中的表。
  • 文档:文档表示一条记录,比如一位同学可以是一个文档,相当于关系数据库中的记录。

3 用法

$ docker pull mongo:5.0.18
$ docker run --rm -d -p 27017:27017 -v /宿主机目录:/data/db \-e MONGO_INITDB_ROOT_USERNAME=adminUser \-e MONGO_INITDB_ROOT_PASSWORD=adminPassword \--name mongo mongo:5.0.18
$ docker exec -it mongo mongo -u adminUser -p adminPassword --authenticationDatabase admin # 启动 mongo shell 连接数据库

4 操作

  • 查看服务器状态
> db.serverStatus()
  • 查看所有数据库
> show dbs
  • 选择数据库
> use fastgpt
  • 查看当前数据库
> db
  • 查看数据库下的集合
> show collections
  • 查看集合中的数据
> db.集合名.find()
> db.集合名.find().pretty() # 格式化输出,带回车,推荐使用

5 使用体会

每个文档都是一个由字段(field)和对应的值(value)组成的 JSON 格式的文档。即使在同一个集合中,也不要求每个文档有相同的 key,扩展起来非常方便。

使用时,不需要事先定义好数据结构,可动态添加字段,对于不确定的业务非常友好。它常用的场景是存储半结构化或不断变化的数据。与 pgsql 相比,mongodb 更适合存储内容不确定的文档型数据,如日志、JSON 数据,用户配置等。

对于存储文件,MongoDB 适合存储小型二进制文件(如图片、音频、PDF),但对于较大的二进制文件,通常更推荐将其存储在文件系统中,并在 MongoDB 中存储文件路径或元数据。以分离文件存储和数据库管理。

与存储在 pgsql 中的 json 字段中的数据相比,mongodb 更适合灵活的查询,查询性能更好。

示例一个使用场景:mongodb 存储纯文本,比如书的文本内容,数据不多且易于搜索;而将对应的 pdf, word, epub 非明文数据存储在文件系统中。

http://www.lryc.cn/news/262679.html

相关文章:

  • Layui实现自定义的table列悬停事件并气泡提示信息
  • Tomcat从认识安装到详细使用
  • 07-Eventing及实践
  • Linux下Netty实现高性能UDP服务
  • Ubuntu 22.04 Tesla V100s显卡驱动,CUDA,cuDNN,MiniCONDA3 环境的安装
  • FFmpeg转码流程和常见概念
  • 【01】GeoScene生产海图或者电子航道图
  • TWS蓝牙耳机的船运模式
  • Vue系列之指令 v-html
  • Mac如何安装stable diffusion
  • Kubernetes (k8s) 快速认知
  • Electron V28主进程与渲染进程互相通信总结
  • MySQL主从复制详解
  • verilog基础语法-计数器
  • 有SCL,SDA,TRIG,I2C的元器件是什么?在哪找?proteus
  • 再谈低代码开发——值得所有程序设计和开发者重视的建议!
  • Docker部署MinIO对象存储服务器结合内网穿透实现远程访问
  • USB2.0 Spec
  • prbs测试
  • 计算机网络:数据链路层(VLAN)
  • C# WPF上位机开发(动态添加控件)
  • MySQL进阶|MySQL中的事务(一)
  • 设计模式策略模式讲解和代码示例
  • Qt容器QStackedWidget小部件堆栈
  • 设计模式 简单工厂 工厂方法模式 抽象工厂模式 Spring 工厂 BeanFactory 解析
  • 【Hive_03】单行函数、聚合函数、窗口函数、自定义函数、炸裂函数
  • RabbitMQ手动应答与持久化
  • java使用枚举类型解决if-else大量堆积
  • 【数据结构】八大排序之直接插入排序算法
  • 网络编程『socket套接字 ‖ 简易UDP网络程序』