MongoDB学习笔记:文档

栏目: 数据库 · 发布时间: 7年前

内容简介:最近有点忙,足有一周没有继续这个系列(而原计划是用一到两个月的时间完成这个系列的笔记的),按照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

文档结构的其他使用

用于查询过滤器(这篇帖子已经完成),更新规格文档、索引规格文档,这些需要将来细化,这里就不赘述了,官网这里也是给了一个引子,如果不具体看相应的内容,是没有用的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML5

HTML5

Matthew David / Focal Press / 2010-07-29 / USD 39.95

Implement the powerful new multimedia and interactive capabilities offered by HTML5, including style control tools, illustration tools, video, audio, and rich media solutions. Understand how HTML5 is ......一起来看看 《HTML5》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试