MongoDB
文章平均质量分 83
楠瓜酥
这个作者很懒,什么都没留下…
展开
-
Mongodb初次安装过程
1、根据操作系统的版本到官网上下载MongoDB,网址:http://www.mongodb.org/downloads。界面如下: 2、点击安装,选择Complete模式,默认安装在C盘。 安装后的路径为:C:\Program Files\MongoDB\Server\3.4 3、创建MongoDB的数据目录,应该放在根目录下,在F盘新建一个数据目录,路径是:F:\data\db 4、原创 2016-12-12 21:20:14 · 590 阅读 · 0 评论 -
MongoDB聚合
(一)管道操作符 每个操作符都会接受一连串的文档,对这些文档做类型转换,最后将转换后的文档作为结果传递给下一个操作符,对于最后一个管道操作符,将结果返回客户端。 不同管道操作符可以按任意顺序组合在一起使用,而且可以重复多次使用。 1、”$match” 用于对文档集合进行筛选,应该尽可能将”$match”放在管道的前面位置,可以快速将不需要的文档过滤掉;在投射和分组之前执行”$match”,可原创 2017-01-01 13:14:52 · 296 阅读 · 0 评论 -
MongoDB特殊索引与集合
一、固定集合 普通集合是动态创建的,可以自动增长以容纳更多的数据。而固定集合要事先创建,它的大小是固定的。固定集合类似于循环队列,当没有空间,最老的文档会被删除以释放空间。数据被顺序写入磁盘的固定空间。 固定集合不能被分片。固定集合必须在使用之前显式创建。 创建大小为1000,文档数量为100的固定集合coll: 固定集合创建后,就不能改变。为固定集合指定文档数量限制时,必须同时指定固定原创 2016-12-31 15:19:18 · 680 阅读 · 0 评论 -
MongoDB主从模式
在主从模式下,MongoDB不会做自动故障转移,需要明确声明主节点和从节点。要将服务器设置为主节点,使用 –master启动服务器: 对于从节点,使用 –slave 和 –source 主节点名和端口: 在主节点执行的写操作,会被复制到从节点上: 注意,在从节点查询时,也需要设置setSlaveOk()。可以从主从模式切换到副本集模式。原创 2017-01-15 13:05:36 · 557 阅读 · 0 评论 -
MongoDB副本集(二)
同步 复制用于在多台服务器之间备份数据,MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作。 oplog是主节点的local数据库的一个固定集合。每一个备份节点都维护着自己的oplog,记录每一次从主节点复制数据的操作,这样每个成员都可以作为同步源提供给其他成员使用。oplog中按顺序保存所有执行过得写操作。每个成员的oplog都应该与主节点保持一致,原创 2017-01-15 12:30:28 · 1001 阅读 · 0 评论 -
MongoDB游标,limit,skip,sort操作
使用游标可以对查询结果进行控制: 游标实现了迭代器接口,可以在forEach()中使用: 当将一个查询find()赋予一个变量,并不会立即去查询数据库。比如:var cursor=db.test.find()。只有执行cursor.hasNext()时才将查询发往数据库。因此在查询之前增加一些查询过滤条件。limit()函数:它指定的是上限。find()在默认情况下,只返回前面的20个结原创 2016-12-25 14:31:05 · 1340 阅读 · 0 评论 -
MongoDB索引
使用索引可以避免全表扫描,提高查询效率: 在MongoDB3.0之后使用totalDocsExamined 替代之前的”nscanned”。直接使用explain()还不行。 创建索引: 使用ensureIndex()创建索引。添加索引时,MongoDB不仅要更新文档,还要更新集合上的所有索引。限制每个集合上最多只能有64个索引。 索引建立在常用的查询字段,或者需要被优化、易造成瓶颈的查原创 2016-12-25 15:59:44 · 361 阅读 · 0 评论 -
MongoDB副本集(一)
副本集是一组服务器,其中有一个主服务器(primary),用于处理客户端请求;还有多个备份服务器(secondary),用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会自动将其中一个成员升级为新的主服务器。 使用复制功能时,如果有一台服务器宕机了,仍然可以从副本集的其他服务器上访问数据。如果服务器上的数据损坏或者不可访问,可以从副本集的某个成员中创建一份新的数据副本。 在原创 2017-01-07 09:54:05 · 4915 阅读 · 4 评论 -
MongoDB范式化与反范式化
范式化:将数据分散到多个不同的集合,不同集合之间可以相互引用数据。如果要修改数据,只需修改保存这块数据的文档就行。但是MongoDB没有连接(join)工具,所以在不同集合之间执行连接查询需要进行多次查询。反范式化:将每个文档所需的数据都嵌入在文档内部。每个文档都有自己的数据副本,而不是所有文档共同引用一个数据副本。但是如果数据发生变化,那么所有相关文档都需要进行更新。范式化能够提高数据写入速度,反原创 2017-01-03 21:20:00 · 1755 阅读 · 0 评论 -
MongoDB增删改操作(一)
一、插入操作 使用insert方法向目标集合中插入一个文档: 使用insertOne方法也能插入一个文档: 批量插入:向一个集合中插入多个文档,也可以使用insert函数实现批量插入,注意:MongoDB权威指南中使用batchInsert函数批量插入不能成功(尽信书不如无书,多操作): 使用insertMany()方法也能插入多个文档: 使用mongoimport导入数据原创 2016-12-19 21:52:43 · 488 阅读 · 0 评论 -
MongoDB查询操作
一、find()查询 查询集合中文档的子集,它有两个参数,第一个参数作为查询文档,指定匹配查询条件的文档,第二个参数指定想要显示的键值。 find()与find({})是等价的,会查询所有的文档,当文档的数量超过20个,则只显示前20个文档。 查询指定条件的文档,并选择指定的键值,可以将不必要的键值剔除掉: 比较操作符 比较操作符包括:”$lt” ,”$lte”,”$gt”,”$gte原创 2016-12-25 14:25:03 · 466 阅读 · 0 评论 -
MongoDB增删改操作(二)
更新文档 使用update方法更新文档。update方法有两个参数,一个是查询文档,定位需要更新的目标文档,另一个是修改器文档,用于对目标文档进行更新修改。 更新操作不可分割,若同时进行两个更新,先到达服务器的先执行。 1、文档替换:未使用修改器,新文档完全替换目标文档。 如果update第一个参数查询文档匹配到多个文档,当对文档中的某一个文档进行更新,容易导致主键冲突,最好确保总是指定原创 2016-12-19 21:55:56 · 446 阅读 · 0 评论 -
MongoDB基本概念
一、数据库 MongoDB中的数据库由一个或多个集合组成,而每一个集合由一个或多个文档组成。在磁盘上,不同的数据库存放在不同的文件中。数据库的命名可以是满足以下条件的UTF-8字符串: 1、不能是空字符(“”) 2、不得含有 / \ . ” * < > : | ? $ \0 ,只能使用ASCII中的字母和数字 3、数据库名区分大小写。建议应全部小写。 4、数据库名最多为64字节。 查原创 2016-12-13 23:54:38 · 390 阅读 · 0 评论 -
MongoDB与关系型数据库的区别
MongoDB是一个面向文档的数据库,数据结构为键值对组成,文档类似于JSON对象,字段值可以包含数组、其他文档。 它与关系型数据库的区别: MongoDB数据库不再有预定模式,文档的键(key)值(value)不再是固定的类型与大小。而关系型数据库中每个表的字段都是一样的,灵活性比较差。MongoDB不具备关系型数据库中的一些功能,比如连接(join)和复杂的多行事务。原创 2016-12-13 23:28:39 · 7464 阅读 · 0 评论 -
MongoDB 分片(一)
分片 分片是指将数据拆分,将其分散存放在不同的机器上的过程。不需要强大的计算机就可以存储更多的数据,处理更大的负载。 MongoDB支持自动分片。允许创建一个包含许多台机器(分片)的集群,将数据子集分散在集群中,每个分片维护着一个数据集合的子集。 复制是让多台服务器都拥有同样的数据副本;而每一个分片都有其他分片拥有的不同的数据子集。分片可以增加可用RAM,增加可用磁盘空间,减轻单台服务器原创 2017-02-11 16:37:29 · 307 阅读 · 0 评论