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

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.kler.cn/news/136148.html

相关文章:

  • C++音视频02:环境搭建
  • VIVO售后真好:屏幕绿线,4年免费换屏
  • 简化深度学习实验管理:批量训练和自动记录方案
  • 【计算机操作系统】课程 作业二 进程与线程 408考研
  • 书生第四期作业:L0G4000 任务作业
  • 【设计模式-状态模式】
  • 猫12分类:使用yolov5训练检测模型
  • gitlab利用CI多工程持续构建
  • 2311d导入c的语义不同
  • 好用的开源项目地址
  • 实验三 循环结构程序设计(Python)
  • Hive调优
  • 2311rust,到38版本更新
  • 【C++】传递‘类非静态成员函数’用作回调函数
  • 数据结构与算法-图
  • ElasticSearch在Windows上的下载与安装
  • flask创建步骤
  • Excel 文件比较工具 xlCompare 11.01 Crack
  • 深度学习人体跌倒检测 -yolo 机器视觉 opencv python 计算机竞赛
  • WebSocket协议详解
  • linux rsyslog综合实战1
  • CI/CD相关概念学习
  • Apache POI(Java)
  • flask实现session开发
  • 1. hadoop环境准备
  • 基于一致性算法的微电网分布式控制MATLAB仿真模型