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

Mongodb命名和文档限制

选用mongodb时,需要了解与mongodb数据大小,命名上的限制。针对这些限制,本文针对这些限制进行翻译整理。

BSON文档

mongodb中的数据记录,按照文档的形式保存。文档保存在一种类似于JSON的BSON结构中。Mongodb对BSON做了一些限制。

文档大小

BSON文档大小不能超过16MB

MongoDB通过限制文档大小,保证数据操作和传输的效率。使用MongoDB查询更新数据时, 数据加载到内存当中。当文档记录过大,占用过多的内存空间。导致加载和排序的速度变慢。同时, 文档过大占用更多的网络资源来传输数据。影响文档的查询效率。

文档层次

BSON文档深度不能超过100层

MongoDB支持嵌套字段,即字段值是对象,数组,字符串,时间等数据类型。这样丰富的数据类型,带来了数据保存的灵活性,增加了数据的层次。但读取保存多层次数据时。会为数据库造成大量的负载和开销。mongodb限制了文档的深度为100层。

命名限制

数据库名称限制(database name)

Mongodb数据库名称大小写敏感。即使用大写字母或小写字母区分,可以定义出不同的数据了。如sample_database与Sample_database代表两个不同的数据库。但mongodb的官方文档中,并不支持使用仅带有不同大小写字母的相同字母序列来区分两个数据库。使用上很难区分,容易出错。

  • windows系统下,数据库名称中不能包含/\."$*<>:|?,也不允许包含空字符
  • unix或linux系统中,数据库名称中不能包含/\."$,也不允许包含空字符
  • 数据库名称长度不能超过64个字符

集合名称限制(collection name)

MongoDB 的数据库中包含多个集合,针对集合名称,mongodb有下面的几点限制和建议

  • 使用小写字母或下划线开头
  • 不可以包含$字符,空格字符,空字符
  • 不能以system.开头, system.开头被保留在mongodb系统内部使用
  • 包含下划线或数字开头的集合名称, 可以使用方法db.getCollection()方法获取集合对象
  • 长度限制
    • 4.4版本以后,不分片的集合和视图名称长度,不得超过255bytes, 分片集合和视图,不得超过235bytes。
    • 4.2版本及4.2版本前,不分片的集合和视图名称长度,不得超过120bytes, 分片集合和视图,不得超过100bytes。

字段名称限制(field name)

对于单个字段名称,字段名称不可以包含空支付。但字段名称可以包含点(.)和dollar符号($)

_id字段限制

每一个集合中都必须存在_id字段,用户插入文档时, 可以指定_id字段。当用户没有指定_id字段时,mongodb为插入的文档添加默认的_id字段。对_id字段,mongodb有下面的一些限制。

  • _id字段时Mongodb的保留字段,被用作集合的主键,唯一不可重复,值不可变
  • 构成_id字段内容可以时数组类型外的任何BSON数据类型。如字符,数字,对象,时间等都可以作为_id字段值。
  • 当使用对象定义_id字段时,子字段不可以使用符号$开头

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

相关文章:

  • pyQt主界面与子界面切换简易框架
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • 【左程云算法全讲11】贪心算法 并查集
  • CSS中4种关系选择器
  • 蓝牙模块(HC-05)与手机连接,蓝牙与蓝牙互联,电脑通过蓝牙控制单片机
  • 安装 eslint 配置指南 及 遇到的一些问题记录
  • trzsz支持文件拖动到终端进行上传,类似lrzsz
  • Doris DDL和DML
  • NewStarCTF2023 Reverse方向Week3 ez_chal WP
  • 程序员如何“升级打怪”?我用了这几个“歪瓜”!
  • 模具制造厂ERP都有哪些牌子?模具制造厂ERP有什么用
  • FPGA语法相关知识合集
  • 2023年Java核心技术大会(Core Java Week 2023)-核心PPT资料下载
  • Vue3 源码解读系列(十五)——编译
  • gitlab安装配置及应用
  • Docker Volume: 实现容器间数据共享与持久化的利器
  • redis问题归纳
  • 改进YOLOv8:结合ConvNeXt V2骨干网络!使用MAE共同设计和扩展ConvNet
  • 基于SpringBoot+Vue的新能源汽车充电桩管理系统
  • Linux进程通信——消息队列
  • ArcGIS教程——ArcGIS工具-按线分割面
  • C语言进阶之冒泡排序
  • 零代码编程:用ChatGPT将SRT字幕文件批量转为Word文本文档
  • 力扣刷题第二十六天--二叉树
  • 电脑显示msvcp140_1.dll丢失的5个常用解决方法,亲测可修复
  • hive sql 行列转换 开窗函数 炸裂函数
  • Continuity” of stochastic integral wrt Brownian motion
  • 设置 wsl 桥接模式
  • [uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝
  • 7、信息打点——资产泄露CMS识别Git监控SVNDS_Store备份