MongoDB学习笔记:文档

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

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

文档结构的其他使用

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


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

查看所有标签

猜你喜欢:

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

高性能网站建设指南

高性能网站建设指南

Steve Souders / 刘彦博 / 电子工业出版社 / 2008年 / 35.00元

本书结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。《高性能......一起来看看 《高性能网站建设指南》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具