MongoDB学习笔记:文档

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

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

文档结构的其他使用

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


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

查看所有标签

猜你喜欢:

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

CSS禅意花园

CSS禅意花园

[美] Dave Shea、Molly E. Holzschlag / 陈黎夫、山崺颋 / 人民邮电出版社 / 2007-6 / 49.00元

这本书的作者是世界著名的网站设计师,书中的范例来自网站设计领域最著名的网站——CSS Zen Garden(CSS禅意花园)。全书分为两个主要部分。第1章为第一部分,讨论网站“CSS禅意花同”及其最基本的主题,包含正确的标记结构和灵活性规划等。第二部分包括6章,占据了书中的大部分篇幅。 每章剖析“CSS禅意花园”收录的6件设计作品,这些作品围绕一个主要的设计概念展开,如文字的使用等。通过探索......一起来看看 《CSS禅意花园》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

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

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具