浏览: 2515
2018年05月02日
MongoDB 没有提供类似 SQL 数据库所具有的自动增长功能(auto-increment)。默认情况下,MongoDB 将 _id 字段(使用 12 字节的 ObjectId)来作为文档的唯一标识。但在有些情况下,我们希望 _id 字段值能够自动增长,而不是固守在 ObjectId 值上。...
浏览: 2633
2018年05月01日
固定集合(Capped Collection)是一种尺寸固定的“循环”集合,可提供高效的创建、读取、删除等操作。这里所指的“循环”的意思是,当分配给集合的文件尺寸耗尽时,就会自动开始删除最初的文档,不需要提供任何显式的指令。如果文档更新后增加了文档的尺寸,那么固定集合会限制对文档的更新。因为固定...
浏览: 2631
2018年04月30日
GridFS 简介GridFS 是 MongoDB 的一个用来存储/获取大型数据(图像、音频、视频等类型的文件)的规范。它相当于一个存储文件的文件系统,但它的数据存储在 MongoDB 的集合中。GridFS 能存储超过文档尺寸限制(16 MB)的文件。GridFS 将文件分解成块,将每块数据保...
浏览: 2660
2018年04月29日
Rockmongo 是一个 MongoDB 的管理工具,可以用来管理服务器、数据库、集合、文档、索引以及很多其他内容。它的操作简单便利,易于读写创建文档。它的作用有点像是 PHP 和 MySQL 所使用的 PHPMyAdmin 工具。下载 Rockmongo从这里下载最新版的 Rockmongo...
浏览: 2488
2018年04月28日
正则表达式在所有语言当中都是经常会用到的一个功能,可以用来搜索模式或字符串中的单词。MongoDB 也提供了这一功能,使用 $regex 运算符来匹配字符串模式。MongoDB 使用 PCRE(可兼容 Perl 的正则表达式)作为正则表达式语言。与文本搜索不同,使用正则表达式不需要使用任何配置或...
浏览: 2591
2018年04月26日
MongoDB 从 2.4 版本起就开始支持全文索引,以便搜索字符串内容。文本搜索使用字干搜索技术查找字符串字段中的指定词语,丢弃字干停止词(比如 a、an、the等)。迄今为止,MongoDB 支持大约 15 种语言。启用文本搜索最初的文本搜索只是一种试验性功能,但从 2.6 版本起就成为默认...
浏览: 2567
2018年04月26日
在 MongoDB 文档中,Map-Reduce(映射归约)是一种将大量数据压缩成有用的聚合结果的数据处理范式。MongoDB 使用 mapReduce 命令来实现映射归约操作。映射归约通常用来处理大型数据。映射归约命令mapReduce 命令的基本格式为:>db.collection.mapR...
浏览: 2580
2018年04月25日
前面的几章中都涉及到了 MongoDB 的对象 id。本章将介绍 ObjectId 的结构。ObjectId 是一个 12 字节的 BSON 类型,其结构如下:前 4 个字节代表 UNIX 的时间戳(以秒计)。接下来的 3 个字节代表机器标识符。接下来的 2 个字节代表进程 id。最后 3 个字...
浏览: 2674
2018年04月24日
额外开销每个索引都会占据一些空间,从而也会在每次插入、更新与删除操作时产生一定的开销。所以如果集合很少使用读取操作,就尽量不要使用索引。内存使用因为索引存储在内存中,所以应保证索引总体的大小不超过内存的容量。如果索引总体积超出了内存容量,就会删除部分索引,从而降低性能。查询限制当查询使用以下元素...
浏览: 2511
2018年04月24日
假如一个 users 集合中具有下列文档:{ "address": { "city": "Los Angeles", "state": "California", "pincode": "123" }, "tags": [ "music", ...
浏览: 2725
2018年04月23日
MongoDB 并不支持多文档原子事务(multi-document atomic transactions)。但它提供了针对单个文档的原子操作。假如一个文档包含数百个字段,则 update 语句将更新所有的字段,或者一个也不更新,从而维持了文档级的原子性。原子操作数据模型维持原子性的建议方法是...
浏览: 2665
2018年04月22日
对于衡量数据库及索引设计的效率来说,分析查询是一个很重要的衡量方式。经常使用的查询有 $explain 和 $hint。使用 $explain$explain 操作提供的消息包括:查询消息、查询所使用的索引以及其他的统计信息。在分析索引优化方案时,这是一个非常有用的工具。在上一节中,我们使用如下...
浏览: 2782
2018年04月22日
何为覆盖查询在每一个 MongoDB 官方文档中,覆盖查询都具有以下两个特点: 查询中的所有字段都属于一个索引; 查询所返回的所有字段也都属于同一索引内。既然查询中的所有字段都属于一个索引,MongoDB 就会利用同一索引,匹配查询集合并返回结果,而不需要实际地查看文档。因为索引存在于 RA...
浏览: 2549
2018年04月21日
在上一节中,我们使用引用关系实现了归一化的数据库结构,这种引用关系也被称作手动引用,即可以手动地将引用文档的 id 保存在其他文档中。但在有些情况下,文档包含其他集合的引用时,我们可以使用数据库引用(MongoDB DBRefs)。数据库引用 vs 手动引用我们将利用一个例子来展示如何用数据库引...
浏览: 2668
2018年04月21日
MongoDB 中的关系表示文档之间的逻辑相关方式。关系可以通过内嵌(Embedded)或引用(Referenced)两种方式建模。这样的关系可能是 1:1、1:N、N:1,也有可能是 N:N。先来考虑保存用户地址的例子。一个用户可能有多个地址,这是一个 1:N 的关系。下面是一个结构非常简单的...
浏览: 3164
2018年04月20日
我们在前面的讲解了MongoDB的基础,如果读者认真阅读学习,相信您已经掌握了mongodb的基础知识,接下来将介绍MongoDB高级知识,让读者更深入了解MongoDB。高级知识的教程课程知识点如下:1 mongodb 关系2 mongodb 数据库引用3 mongodb 覆盖索引查询4 mo...
浏览: 2888
2018年04月20日
要想在 MongoDB 上使用 PHP,需要使用 mongodb PHP 驱动。从该链接处下载 PHP 驱动。确保下载的是最新版。将其解压缩,并将 php_mongo.dll 文件放到 PHP 扩展目录中(默认为 “ext”),然后把下列代码放到 php.ini 文件中:extension=ph...
浏览: 2799
2018年04月19日
安装要想在 Java 程序中使用 MongoDB,需要先确定是否安装了 MongoDB JDBC 驱动,并且要在机器上安装了 Java。查看 Java 教程来确保在机器上安装好 Java。下面来介绍如何安装 MongoDB JDBC 驱动。从路径 Download mongo.jar 处下载 j...
浏览: 2620
2018年04月19日
在准备一个 MongoDB 部署时,应该先了解一下应用是如何在生产环境中运行的。使用一个持久性可重复的策略来管理部署环境无疑是很有用的,它将减少你在生产环境中遇到意外麻烦的可能性。最佳的策略应包括以下几点:规划设置原型,执行负载测试,监控关键参数,并使用该信息来扩展设置。关键在于积极监控整个系统...
浏览: 2749
2018年04月19日
MongoDB 数据转储为了在 MongoDB 中创建数据库备份,需要使用 mongodump 命令。该命令会将服务器上的所有数据都转储到 dump 目录中。你可以使用很多选项来限制转储的数据量,或者创建远程服务器备份。格式mongodump 命令的基本语法格式为:>mongodump范例开启 ...