mongodb 基本概念:文档(Documents)
mongodb将数据存为BSON 文档格式,BSON 是json文档的二进制格式,但是比json支持更多数据类型,详见:bsonspec.org
![](/assets/blank.gif)
1、数据结构
mongodb文档由键值对组成
{field1: value1,field2: value2,field3: value3,...fieldN: valueN
}
value可以是任意bson类型,如文档、数组、文档数组,如:
var mydoc = {_id: ObjectId("5099803df3f4948bd2f98391"),name: { first: "Alan", last: "Turing" },birth: new Date('Jun 23, 1912'),death: new Date('Jun 07, 1954'),contribs: [ "Turing machine", "Turing test", "Turingery" ],views : NumberLong(1250000)}
以上字段的类型分别是:
_id
:ObjectId.name:一份嵌入的文档,包含字段:
first
、last
.birth
、death
:Date 类型.contribs
:字符串数组.views
:NumberLong 类型.
字段名
字段名是字符串类型,有以下限制:
_id
保留作为主键; 取值在数据集中必须唯一, 不可修改, 除了数组可以是任意类型.- 不能有空字符.
- 顶层字段名不能以(
$
) 开头.(即便支持也不推荐)
bson文档可以有多个相同名称不同类型字段,但部分接口不支持,若需支持参考:driver documentation
字段值限制
数据集中被索引的字段有最大长度限制,详见:Maximum Index Key Length
2、点标识符
访问数组元素
"<数组名>.<0开头下标>"
如访问文档:
{...contribs: [ "Turing machine", "Turing test", "Turingery" ],...
}
访问contribs
数组第三个元素,可以用:
contribs.2
更多用法详见:
- Query an Array
- Query an Array of Embedded Documents
访问嵌入文档
访问嵌入文档的字段可以用:
"<文档名称>.<字段名>"
如访问文档:
{...name: { first: "Alan", last: "Turing" },contact: { phone: { type: "cell", number: "111-222-3333" } },...
}
- 访问name字段信息中的last,可以用:
"name.last"
. - 访问
contact
字段信息中phone
文档的number
,可以用"contact.phone.number"
.
更多用法详见:
- Query on Embedded/Nested Documents
- Query an Array of Embedded Documents
3、文档限制
文档大小限制
bson文档最大容量是:16MB,以此保证一份文档不超出内存或网络带宽;若要存放更大的文档详见:GridFS API.
文档字段顺序
mongodb根据写操作维护字段顺序,除了以下情况:
_id
字段永远排首位- 更新字段名会导致重排序
_id
字段
mongodb每份文档需要唯一的_id 作为主键,若插入文档时省略,则由mongodb自动分配 ObjectId
4、文档结构其他用法
查询详见:
- Query Documents
- Query on Embedded/Nested Documents
- Query an Array
- Query an Array of Embedded Documents
文档更新详见:
Update specifications.
转自:https://docs.mongodb.com/manual/core/document/
mongodb 基本概念:文档(Documents)相关推荐
- MongoDB基本概念学习 - 文档
MongoDB的概念和关系型数据库概念的对应如下: 数据库对应数据库:表对应集合:行对应文档: mongodb的 文档 大体相当于关系数据库的行: MongoDB中,文档是一组键值(key-value ...
- mysql mongodb 事务_MySQL PK MongoDB:多文档事务支持,谁更友好?
原标题:MySQL PK MongoDB:多文档事务支持,谁更友好? 作者介绍 贺春旸,凡普金科DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国 ...
- spring mongodb内嵌文档查询
spring mongodb内嵌文档查询 代码示例 简化写法 spring mongodb内嵌文档查询示例. {"name": "zsParent", &quo ...
- MongoDB内嵌文档查询
MongoDB内嵌文档查询 示例数据结构 [{"name": "lisa", "age": 17,"friends": ...
- 文档(Documents), 字段(Fields), 及模式设计(Schema Design)
1. 文档(Documents), 字段(Fields), 及模式设计(Schema Design) 1.1 概览 1.1.1 Solr的Schema文件 Solr在schema文件中存储它需要知道的 ...
- php mongodb _id,PHP库 查询Mongodb中的文档ID的方法
在IBM我的一份新工作是一名开发的后勤人员.那意味着我的大部分时间是在和数据库打交道.在我的工作流程中,我花了一些时间在MongoDB上面--这是一个文档数据库.但是在通过ID来检索记录这个操作上面我 ...
- MongoDB内置文档查看和修改
MongoDB设计的时候,有时候会设计内置文档,方便某个对象的统一.在这里略写了查看内置文档和更新内置文档. 1.查看 表为:realtimelogin realName为:123 realpa ...
- 前端学习(1339):mongodb更新数据文档
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/playground', { useUnifie ...
- MongoDB之查询文档
目录 文档查询 MongoDB 与 RDBMS Where 语句比较 MongoDB AND 条件 MongoDB OR 条件 AND 和 OR 联合使用 模糊查询 排序 分页 总条数 去重 指定返回 ...
- 分布式搜索引擎01-elasticsearch-介绍、倒排索引原理、概念(文档和字段,索引和映射)、安装、索引库crud、文档crud、RestAPI(java代码实现es的crud)
文章目录 分布式搜索引擎01 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 1.1.2.ELK技术栈 1.1.3.elasticse ...
最新文章
- OpenCV~PS效果
- A Comprehensive Analysis of Sequence Alignment Algorithms for LongRead Sequencing
- 解决写入InfluxDB时,报unbalanced quotes的问题
- 孔子绝粮于陈蔡子贡孔子问答节选(白话)
- ios微信支付失败 php,iOS 微信支付疑难杂症。
- C++标准转换运算符static_cast
- 力登:以智能化管理提升数据中心服务能力成熟度
- Maven的单元测试插件maven-surefire-plugin详解
- 电子数字计算机最早应用于哪个领域,2013计算机一级B考试模拟试题及答案(2)...
- WEB流程设计器 = jQuery + jsPlumb + Bootstrap
- 造车大军再添一员!消息称滴滴正式启动造车项目
- TIOBE 3 月编程语言排行榜出炉:Roblox 带飞 Lua,重回 TOP 20!
- 解决报错“No module named ‘pyLDAvis.gensim‘”
- temp的作用c语言,temp的使用
- linux 中gnu的含义是,GNU是什么意思
- 基于CNN的区域特定多尺度特征提取的两阶段停车位检测
- 口袋的天空(洛谷 P1195)
- 经纬度与墨卡托坐标转化
- 软件研发落地实践,要从设计就开始
- 磨金石教育摄影技能干货分享|有哪些让你难以忘怀的人文摄影照片