内容简介:最近有点忙,足有一周没有继续这个系列(而原计划是用一到两个月的时间完成这个系列的笔记的),按照20英里法则,这样的学习效果不好,今天抽空还是写了一篇,很多事,贵在坚持。上一篇文章,其实题目起错了,不应该包含文档,因为上一篇文章的内容并没有文档的内容,不过CSDN的MD这种方式,修改题目总是不成功,只好在自己的博客修改,这样两篇文章的题目有些不一致了。MongoDB的文档相当于MySQL的行,但是格式都是JSON的,而存储的格式是BSON,是二进制的保存JSON的格式。
最近有点忙,足有一周没有继续这个系列(而原计划是用一到两个月的时间完成这个系列的笔记的),按照20英里法则,这样的学习效果不好,今天抽空还是写了一篇,很多事,贵在坚持。
上一篇文章,其实题目起错了,不应该包含文档,因为上一篇文章的内容并没有文档的内容,不过CSDN的MD这种方式,修改题目总是不成功,只好在自己的博客修改,这样两篇文章的题目有些不一致了。
正文
文档结构
MongoDB的文档相当于 MySQL 的行,但是格式都是JSON的,而存储的格式是BSON,是二进制的保存JSON的格式。
文档的结构是域(field)-值(value)对,类似如下的结构:
{ field1: value1, field2: value2, field3: value3, ... fieldN: valueN }
值字段可以包含任意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) }
域的名字和值各有一些限制,这个一般不会触及,所以暂时忽略—-当然,触及的时候,可以查一下手册。
点符号
Array(数组)
访问数组的方式,是数组名+“.”+索引(索引是从0开始),如下:
"<array>.<index>"
举个例子(摘自官网):
{ ... contribs: [ "Turing machine", "Turing test", "Turingery" ], ... }
想访问数组的第三个元素“Turingery”,就使用“contribs.2”。
Embedded Documents(嵌入的文档)
想访问嵌入的文档,使用文档名+“.”+“域名”的访问方式,语法如下:
"<embedded document>.<field>"
举例:
{ ... name: { first: "Alan", last: "Turing" }, contact: { phone: { type: "cell", number: "111-222-3333" } }, ... }
“name.last”表示访问name的last域。
“contact.phone.number”表示访问contact的phone域的number域。
文档的限制
文档的大小
最大的BSON文档的大小是16M。
文档域的顺序
文档遵循着写的操作顺序
MongoDB preserves the order of the document fields following write operations…
文档保留着写操作的顺序–这句话有点没理解,是按照第一次写入的顺序吗?
除了:
_id
_id域
_id
域是主键,如果插入时忽略了,系统会自动加上这个字段。
By default, MongoDB creates a unique index on the _id field during the creation of a collection. The _id field is always the first field in the documents. If the server receives a document that does not have the _id field first, then the server will move the field to the beginning. The _id field may contain values of any BSON data type, other than an array.
_id _id _id
文档结构的其他使用
用于查询过滤器(这篇帖子已经完成),更新规格文档、索引规格文档,这些需要将来细化,这里就不赘述了,官网这里也是给了一个引子,如果不具体看相应的内容,是没有用的。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- InnoDB文档笔记(一)
- webpack 文档阅读笔记 20190523
- js文档笔记2——标准库
- 关于 iOS 集合官方文档的一份小笔记
- 提升写文档和解决问题的能力:《金字塔原理》读书笔记
- GO语言学习笔记(二)IDE安装与配置、格式化代码、生成代码文档
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
挑战程序设计竞赛
秋叶拓哉、岩田阳一、北川宜稔 / 巫泽俊、庄俊元、李津羽 / 人民邮电出版社 / 2013-7-1 / CNY 79.00
世界顶级程序设计高手的经验总结 【ACM-ICPC全球总冠军】巫泽俊主译 日本ACM-ICPC参赛者人手一册 本书对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。 本书适合程序设计......一起来看看 《挑战程序设计竞赛》 这本书的介绍吧!