MongoDB 的核心概念(文档、集合、数据库、BSON)是什么?

MongoDB数据库、集合与文档的基本操作 新手入门,手把手教有关MongoDB数据库、集合与文档的基本操作! 阅读详情

MongoDB 是一个面向文档的数据库,它的核心概念与传统的关系型数据库(RDBMS)有所不同。以下是它的四个主要核心概念:

  1. 文档 (Document)

    • 定义: 文档是 MongoDB 中的基本数据单元。它类似于关系型数据库中的一行记录,但比行更灵活和强大。
    • 结构: 文档是一组键值对 (key-value pairs)。这些键值对是有序的。
    • 格式: 文档的结构非常类似于 JSON (JavaScript Object Notation)。MongoDB 内部使用 BSON (Binary JSON) 格式来存储文档,BSON 是 JSON 的二进制表示形式,它支持更多的数据类型,并且更易于高效地扫描和编码。
    • 特点:
      • 每个文档都有一个唯一的 _id 字段,它作为文档的主键标识。
      • 文档的字段值可以是各种数据类型,包括字符串、数字、布尔值、数组,甚至可以是嵌套的文档。
      • 同一个集合中的文档可以有不同的结构(字段可以不同、数据类型可以不同),这就是所谓的“无模式”或“灵活模式”。
    • 类比关系型数据库: 类似于关系型数据库中的一行 (Row)。
  2. 集合 (Collection)

    • 定义: 集合是 MongoDB 中文档的容器,它是一组相关的文档。
    • 结构: 集合没有强制的结构定义(模式),这意味着一个集合中的文档可以有不同的字段和结构。
    • 特点:
      • 集合存在于数据库中。
      • 你不需要预先创建集合,当你向一个不存在的集合插入第一个文档时,MongoDB 会自动创建该集合。
      • 集合可以包含大量文档,文档的数量没有固定限制。
    • 类比关系型数据库: 类似于关系型数据库中的表 (Table)。
  3. 数据库 (Database)

    • 定义: 数据库是 MongoDB 中集合的容器,它是一组相关的集合。
    • 结构: 数据库提供了组织和管理集合的逻辑命名空间。
    • 特点:
      • 一个 MongoDB 实例可以拥有多个数据库。
      • 每个数据库都有自己的一组集合。
      • 权限管理、复制和分片等操作通常在数据库级别进行配置。
    • 类比关系型数据库: 与关系型数据库中的数据库 (Database) 概念是直接对应的。
  4. BSON (Binary JSON)

    • 定义: BSON 是 MongoDB 用于存储文档和进行网络传输的二进制序列化格式。它是 JSON 的超集。
    • 目的:
      • 效率: BSON 设计得比 JSON 更快地解析和扫描。它包含长度前缀,使得跳过不需要的字段或确定文档大小变得容易。
      • 数据类型: BSON 支持比标准 JSON 更多的数据类型,如日期、二进制数据、ObjectId(用于生成唯一的 _id)、正则表达式等。这使得 MongoDB 可以存储更丰富的数据类型而无需特殊处理。
    • 特点: 虽然你在与 MongoDB 交互时(如使用 shell 或驱动程序)看到的数据通常以 JSON 或其变体的形式呈现,但 MongoDB 内部实际存储和处理的是 BSON 格式的数据。

核心概念之间的关系:

可以这样理解它们之间的层次结构:

一个 MongoDB 实例 可以包含多个 数据库 (Database)。
每个 数据库 可以包含多个 集合 (Collection)。
每个 集合 包含多个 文档 (Document)。
每个 文档 是由键值对组成,内部以 BSON 格式存储。

用关系型数据库的类比来说:

  • MongoDB 实例 ≈ 数据库服务器
  • 数据库 ≈ 数据库
  • 集合 ≈ 表
  • 文档 ≈ 行
  • 文档中的键值对 ≈ 列
  • BSON ≈ 数据的内部存储格式(没有直接的 RDBMS 类比,因为它处理的是结构而非扁平的行)

理解这些核心概念是使用 MongoDB 进行数据存储、查询和管理的起点。文档的灵活性和集合的无模式特性是与关系型数据库最显著的区别。

【MongoDB实战】3.2 核心概念详解:吃透MongoDB的库、集合、文档与ObjectID MongoDB核心概念解析:文档、集合与ObjectID 摘要:本文深入解析MongoDB三大核心概念。文档(BSON格式)作为最小数据单元,支持嵌套结构和多种数据类型,遵循_id唯一性、字段命名等规则,大小限制16MB。集合作为文档容器,具有无Schema特性,允许不同结构的文档共存,支持隐式创建。ObjectID作为默认主键,包含时间戳、机器标识等信息,保证分布式环境下的唯一性。通过实战代码演示了文档创建、集合操作及ObjectID生成,帮助开发者深入理解MongoDB的数据存储机制和灵活特性。 阅读详情

相关推荐

02 MongoDB数据类型、重要概念以及shell常用指令

类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:: BSON 字符串都是 UTF-8 编码。: BSON 时间戳类型主要用于 MongoDB 内部使用。在大多数情况下的应用开发中,可以使用 BSON 日期类型。: 表示当前距离 Unix新纪元(1970年1月1日)的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字

数据知道的博客 3万+

MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

MongoDB 是一个基于。由 C++ 编写,就是为MongDB 是一个之间的产品. 他支持的数据结构非常松散,类似 json 的 bson 格式,因此可以存储比较复杂的数类型. Mongo 最大的特点就是他的查询非常强大,语法类似于面向对象的查询语言,

CYK_byte的博客 9793

爬取信用中国里面的行政处罚

result字段名为行政处罚文书号、处罚决定日期、处罚内容、处罚金额、违法事实、处罚机关、公司名称,行政处罚次数。file_path=r'E:\Data analyze\python\行政处罚爬虫/'#路径需要按实际修改。writer = pd.ExcelWriter('统计.xlsx')# 写入Excel文件。src_workbook=file_path+r'行政处罚(名单).xls' #表格名称也要更改。# keyword = input("输入爬取的公司全称必须是全称")

qq_42863025的博客 1674

【mongodb基础-3】文档/集合、数据库等基础概念、mongodb数据类型的介绍

【mongodb基础-3】文档/集合、数据库等基础概念、mongodb数据类型的介绍

hiliang521的博客 1748

SD-WAN组网案例——数据中心

SD-WAN组网案例——数据中心

2301_78457663的博客 705

Unity实时控制佳能单反拍照全流程(附EDSDK 3.6.1配置避坑指南)

本文详细介绍了在Unity中实时控制佳能单反相机进行拍照的完整流程,重点提供了EDSDK 3.6.1的配置与避坑指南。内容涵盖从SDK获取、环境搭建、相机初始化、参数设置到实现拍照控制,并深入探讨了实时取景的延迟优化方案与资源管理,旨在帮助开发者高效集成专业相机,提升AR/VR及摄影测量等应用的视觉输入质量。

go5gopher的博客 184

mongodb——概念介绍(文档,集合,固定集合,元数据,常用数据类型)

mongodb概念介绍,文档,集合,固定集合,常用数据类型等

qq_43058348的博客 2009

fdtd(时域有限差分)仿真

基础入门阶段采用 Step by step 的教学方式带着做具体的案例,在案例中学习 FDTD 应用的。的痛难点,将 FDTD 仿真引入实验当中,通过软件可视化处理有效直观的展示仿真的流程,与实验数。图像传感器,OLED 和液晶,表面计量,表面等离子体,石墨烯,太阳能电池,集成光子组件,超材。料,衍射光学和光子晶体。波,场极化,磁场,周期性结构,半球功率积分等设计解决方案,提供时域有限差分分析函数,时域。子光学传感器、热电子光探测器的光学特性研究、光学微腔宽带吸收器等多个方向的研究方法。

y2715163545的博客 5433

mongodb 数据库管理(数据库、集合、文档)

如果数据库不存在,则创建数据库,否则切换到该数据库MongoDB 中默认的数据库为 test,如果没有创建新的数据库,集合将存放在 test 数据库中。

weixin_68256171的博客 1950

复习单片机:动态数码管(1 数码管介绍+2 74HC245 和 74HC138 芯片介绍+3 硬件设计+4 软件设计+5 实验现象)

复习单片机:动态数码管(1 数码管介绍+2 74HC245 和 74HC138 芯片介绍+3 硬件设计+4 软件设计+5 实验现象)

wo12369874的博客 1700

移动支付APP(仿支付宝)

Toast.makeText(PayActivity.this, "支付失败:" + payResponse.getMsg(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败:" + t.getMessage(), Toast.LENGTH_SHORT).show();Toast.makeText(PayActivity.this, "支付失败", Toast.LENGTH_SHORT).show();

寒寒豆豆软件公司的博客 134

MongoDB 概念解析

本文全面解析了MongoDB的核心概念,通过SQL和MongoDB的对比方式,帮助读者建立完整的认知体系。主要内容包括:数据库、集合、文档等基础概念的对照解析;BSON格式、主键机制、灵活Schema等MongoDB特有机制;以及固定集合、GridFS、变更流等进阶功能。文章还介绍了MongoDB的集群架构、查询操作语法、索引类型和事务支持。通过丰富的代码示例和表格对比,系统性地展现了MongoDB作为文档型数据库的设计哲学和最佳实践,适合开发者从SQL思维转向MongoDB思维时快速掌握核心要点。

m0_57545130的博客 1278

使用CNN/ResNet实现自动调制识别(RML2018.01a)

本文基于RML2018.01a大型数据集,给出CNN及其变体ResNet的信号识别的实现方式(附代码) 目录一、CNN的代码实现1.1 导入包1.2 数据读取及数据集划分1.3 构建CNN模型1.4 模型训练1.5 测试及模型可视化二、ResNet的代码实现 RML2018.01a数据集信息如下: 数据集来源 Over-the-Air Deep Learning Based Radio Signal Classification 调制类型 19种数字调制方式: 32PSK, 16APSK,

QAQIknow的博客 1万+

系列三、MongoDB中的核心概念

MongoDB中的库就类似于传统关系型数据库中库的概念,通过不同的库实现隔离不同的应用数据。MongoDB中可以建立多个数据库。每一个库都有自己的集合和权限,不同的数据库放置在不同的文件中。默认的数据库为test,数据库存储在启动指定的data目录中。

仰望星空,脚踏实地!安全感是自己给的,努力才是一辈子的安全感。 338

57、振荡扫描仪的挠性枢轴:原理、设计与材料选择

本文深入探讨了振荡扫描仪中挠性枢轴的工作原理、设计方法与材料选择。挠性枢轴因其无润滑、高精度、低周期性误差和潜在无限寿命等优势,广泛应用于光学、太空、医学和半导体等领域。文章分析了其在小角度下的优异性能与无法连续旋转等局限性,提供了关键设计公式,并对比了多种挠性材料的性能指标。同时,结合不同应用场景提出设计优化策略,并展望了微型化、智能化和高性能材料等未来发展趋势,为工程实践提供了系统的设计流程与选型建议。

numpy6sculptor的博客 95

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

mongodb中的一些概念

启动数据库服务: mongodb中的一些概念 数据库database: mongodb可以成为数据库系统(服务); 一个数据库系统,允许对接很多服务; 每个数据库,就对接一个数据库 集合 collection: 数据库是一个服务(业务)的数据容器; 一个服务(业务)的数据,要分类管理; 如留言板系统,有留言数据,有用户数据 文档document: 集合collection也是数据容器; 文档document 是单条数据,如一条留言,一个用户; 可以被增删改查 bson: .

visibleforest的博客 470

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mongodb中的文档、集合和数据库概念

1. 文档是mongodb中的基本单元,相当于rdb中的一条记录,通常以json格式显示,以bson格式进行存储; 2. 集合相当于rdb中的表,这里的表没有模式定义; 3. mongodb的每个实例可以包含多个数据库,每个数据库有自己的集合和权限; 一、文档 多个键值对的有序存放在一起就是文档。 文档中的值可以是字符串,数值类型,还可以是其它的文档; 键是字符串,键可以是任意UTF-...

liaomingwu的专栏 9308

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

非关系型数据库篇(MongoDB)

MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

qq_50604294的博客 1267

MongoDB文档和集合

1、文档是MongoDB最核心的概念,本质上是一种类JOSN的BSON格式的数据。 BSON是一种类JSON的二进制格式数据,它可以理解为在JSON基础上添加了一些新的数据类型,包括日期、int32、int64等。 BSON是由一组组键值对组成,它具有轻量性、可遍历性和高效性三个特征。可遍历性是MongoDB将BSON作为数据存储的主要原因。 { field1:value1, f

http://kingim.cn/ 1184

MongoDB

MongoDB 是一款开源的面向文档的数据库(document database), NoSQL 中一种,同样使用文档存储实现 NoSQL 的 DB 还有 MarkLogic、OrientDB、CouchDB 等等。 安装 Mac 用户可以直接使用 Homebrew 安装,命令如下: $ sudo brew install mongodb 也可以自己到 MongoDB 的下载中心 下载对...

b657447349的博客 745

mongodb 定义字段类型_MongoDB的基本概念

1.文档相当于RDBMS中的行,是MongoDB的核心概念,多个键及其关联的值有序地放置在一起便是文档。采用BSON(Binary JSON)的表达方式。例如:{ "greeting": "Hello, MongoDB"}特点有:--文档中的键/值对是有序的--文档在保留JSON基本的键/值对特性的基础上,添加了一些其他的数据类型。--不同于RDBMS,文档的键区分大小写--文档中不能有重复的键键...

weixin_39772849的博客 1186

mongodb 定义字段类型_MongoDB的基本概念:数据库,文档与集合等

一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。在MongoDB中可以创建数据库,如果你想使用MongoDB,创建数据库不是必要的。"show dbs" 命令可以显示所有数据的列表。执行 "db"命令可以显示当前数据库对象或者集合。运行"use"命令,可以连接到一个指定的数据库。以上实例命令中,"student"是你要检索的数据库。在下一...

weixin_42150360的博客 1292

《MongoDB入门教程》第03篇 MongoDB基本概念

MongoDB 使用 BSON 文档存储记录。文档就是一组字段-值。MongoDB 中的文档属于集合,集合属于数据库。命名空间由数据库名加集合名组成。

Tony.Dong的专栏 786

【待完善】MongoDB - 数据模型

MongoDB - 数据模型 优快云用户名:jcLee95 附:【概念对比】 SQL关系型数据库 MongoDB 数据库 数据库 表 集合(collection) 行 文档(document) 列/字段 字段(field) 索引 索引(index) 主键 _id(默认索引字段) 视图(view) 视图(view) 表连接(table joins) 聚合操作($lookup) MongoDB集合中所有的文档都有一个唯一的_id字段作为集合的主键。如果创

jclee95的个人博客 414

MongoDB核心概念解析:文档、集合与数据库的关系及操作技巧

MongoDB 是一个开源的、高性能的 NoSQL 数据库,支持文档、键值、图和列式等多种数据模型,特别适合存储和查询非结构化数据。本文将深入解析 MongoDB 的核心概念——文档、集合与数据库,帮助新手快速掌握它们之间的关系及实用操作技巧。 ## 一、MongoDB核心概念速览 MongoDB 的数据存储结构呈层级关系,从顶层到底层依次为:**数据库(Database)→ 集合(Colle

gitblog_00041的博客 441

JB3-10-MongoDB

单机容器搭建,使用IDEA连接,数据库,用户,集合,文档,MongoRepository等。

周航宇的博客 1784
上一篇: 如何自定义 Spring MVC 的配置?
下一篇: MQTT详细介绍
冰糖心书房
博客等级 码龄15年 6014粉丝 690原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值