随笔分类 - 学习mongodb
摘要:MongoDB的官方C#驱动可以通过这个链接得到。链接提供了.msi和.zip两种方式获取驱动dll文件。通过这篇文章来介绍C#驱动的基本数据库连接,增删改查操作。在使用C#驱动的时候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用。同时要在代码中...
阅读全文
摘要:文档的数据模型代表了数据的组织结构,一个好的数据模型能更好的支持应用程序。在MongoDB中,文档有两种数据模型,内嵌(embed)和引用(references)。内嵌MongoDB的文档是无模式的,所以可以支持各种数据结构,内嵌模型也叫做非规格化模型(denormalized)。在MongoDB中...
阅读全文
摘要:前几篇文章都是从开发和使用的角度了解了MongoDB的各个知识点,这篇文章将从MongoDB管理的角度入手,了解MongoDB管理所要了解的基本知识。数据库命令在前面几篇文章中,已经接触了一些数据库命令,例如文档、索引的操作。在MongoDB shell中,可以使用runCommand()来传入并执...
阅读全文
摘要:如果需要存储大量数据,或者系统的读写吞吐量很大的时候,单个server就很难满足需求了。这个时候我们可以使用MongoDB的分片机制来解决这些问题。分片的基本概念分片(sharding)是一种水平扩展(horizontal scaling)的方式,把一个大的数据集分散到多个片服务器上,所有的片服务器...
阅读全文
摘要:在MongoDB副本集中,主节点负责处理客户端的读写请求,备份节点则负责映射主节点的数据。备份节点的工作原理过程可以大致描述为,备份节点定期轮询主节点上的数据操作,然后对自己的数据副本进行这些操作,从而保证跟主节点的数据同步。至于主节点上的所有数据库状态改变的操作,都会存放在一张特定的系统表中。备份...
阅读全文
摘要:在使用MongoDB的时候,为了保证数据的安全,就要考虑数据备份和故障恢复了;同时出于性能的考虑,能够进行读写分离肯定能提升数据库性能。所以,在这篇文章中进行副本集的介绍。副本集(Replica Set),就是有自动故障恢复能力的主从集群。副本集有一个主节点,同时有一个或多个备份节点。当主节点出现故...
阅读全文
摘要:通过上一篇文章中,认识了MongoDB中四个聚合操作,提供基本功能的count、distinct和group,还有可以提供强大功能的mapReduce。在MongoDB的2.2版本以后,聚合框架中多了一个新的成员,聚合管道,数据进入管道后就会经过一级级的处理,直到输出。对于数据量不是特别大,逻辑也不...
阅读全文
摘要:根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令。其中,count、distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum、average、max、min),就需要通过mapReduce来实现了。在MongoDB2.2版本以后,引入了新的聚合框架...
阅读全文
摘要:数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新。通过建立索引,影响一部分插入、更新和删除的效率,但是能大大挺高查询的效率,这个还是很值得的。为了开始后面的操作,首先通过MongoDB shell插入一些测试数据。 1 fo...
阅读全文
摘要:接着前一篇文章,下面主要介绍一下MongoDB中常用的find操作。先打开MongoDB shell,通过下面一组命令插入一些数据。 1 post1 = {"title":"learn MongoDB", "author":"Wilber", "date":new Date(), "score":9...
阅读全文
摘要:上一篇文章中介绍了MongoDB的一些基本知识,同时看到了怎么启动一个MongoDB服务,并且通过MongoDB自带的shell工具连接到了服务器。这一次,就通过MongoDB shell介绍一下对文档的增删改操作。增加新文档接着上一篇文章,打开一个MongoDB shell。通过“show dbs...
阅读全文
摘要:基本概念MongoDB是一个面向文档的数据库,不是关系型数据库。MongoDB是无模式的,也就是说文档的键不需要事先定义,也不会是一成不变。 跟关系数据库相比,MongoDB中出现了一些新的定义: 文档:相当于关系数据库中的一行,是MongoDB的基本数据单元。文档是一组键/值对的有序组合。 文档中...
阅读全文