<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MongoDB on 冯威的博客</title><link>https://fwhyy.com/tags/mongodb/</link><description>Recent content in MongoDB on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 06 Jun 2024 08:49:13 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/mongodb/atom.xml" rel="self" type="application/rss+xml"/><item><title>MongoDB密码设置</title><link>https://fwhyy.com/2024/06/mongodb-password-setting/</link><pubDate>Thu, 06 Jun 2024 08:49:13 +0800</pubDate><guid>https://fwhyy.com/2024/06/mongodb-password-setting/</guid><description>&lt;p&gt;给 MongoDB 设置密码有两种情况：&lt;/p&gt;
&lt;p&gt;1、给创建的 MongDB 容器添加密码。&lt;/p&gt;
&lt;p&gt;2、给现有的无密码的 MongoDB 容器进行密码设置。&lt;/p&gt;
&lt;p&gt;在设置密码之前，先说说 MongoDB 的版本，之前一直使用 5.0.2 和 5.0.14 版本比较多，然而这两个版本都是有安全漏洞的，所以大版本如果选择 5 ，可以选择 5.0.24 。&lt;/p&gt;</description></item><item><title>高可用：MongoDB容器部署</title><link>https://fwhyy.com/2023/05/high-availability-mongodb-container-deployment/</link><pubDate>Mon, 08 May 2023 12:04:42 +0800</pubDate><guid>https://fwhyy.com/2023/05/high-availability-mongodb-container-deployment/</guid><description>&lt;p&gt;MongoDB 是一款 NoSQL 数据，通常用来存储非结构化数据，我们的产品中也有用到，例如：一些文件存储在 MongoDB 的 GridFS 中。&lt;/p&gt;</description></item><item><title>MongoDB历险记</title><link>https://fwhyy.com/2017/10/the-adventures-of-mongodb/</link><pubDate>Tue, 24 Oct 2017 23:56:57 +0800</pubDate><guid>https://fwhyy.com/2017/10/the-adventures-of-mongodb/</guid><description>&lt;p&gt;一直在使用&lt;code&gt;MongoDB&lt;/code&gt;来做为底层的数据存储，一直也没有出现什么问题。但就在&lt;code&gt;MongoDB&lt;/code&gt;上市之际，一客户的&lt;code&gt;MongoDB&lt;/code&gt;挂了,原因很复杂，大概有下面的一些原因和操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;客户的存储做过迁移；&lt;/li&gt;
&lt;li&gt;服务器打补丁做过重启；&lt;/li&gt;
&lt;li&gt;服务器重启后其中有一台的存储盘丢失；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MongoDB&lt;/code&gt;的所有服务都恢复后，在一个很短的时间内是正常的，测试在这期间做过&lt;code&gt;Web&lt;/code&gt;端和&lt;code&gt;PC&lt;/code&gt;客户端端测试；&lt;/li&gt;
&lt;li&gt;当测试通知文件不能上传时，发现一台服务器端&lt;code&gt;MongoDB&lt;/code&gt;服务不能正常启动，紧接着另一台也不能正常启动；&lt;/li&gt;
&lt;li&gt;此时&lt;code&gt;MongoDB&lt;/code&gt;已彻底瘫痪。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上面就是整个事故的经过，发生在周六的夜里九十点钟，接下来就是长达一天一夜的修复工作。&lt;/p&gt;</description></item><item><title>C#访问群集部署时的MongoDB</title><link>https://fwhyy.com/2015/08/mongodb-access-to-the-csharp-of-the-cluster/</link><pubDate>Thu, 13 Aug 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/08/mongodb-access-to-the-csharp-of-the-cluster/</guid><description>&lt;p&gt;普通的MongoDB部署有一台主、一台备，程序连接MongoDB时需要主服务器的地址以及端口，当群集部署的时候就会有多个服务器地址需要连接，MongoDB的C# API可以支持同时连接多台服务器。&lt;/p&gt;</description></item><item><title>C#用md5判断GridFS中文件是否存在</title><link>https://fwhyy.com/2015/05/using-csharp-check-file-in-gridfs/</link><pubDate>Thu, 21 May 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/05/using-csharp-check-file-in-gridfs/</guid><description>&lt;p&gt;假设使用MongoDB的GridFS做分布式文件系统，同样的文件在文件系统中只存一份，那么在存入文件时就需要判断文件是否已经存在，在GridFS中每个文件都有唯一的md5哈希值，只需要用文件的md5值判断是否在GridFS中已经存在就可以了，所谓的秒传功能就是用的该原理。&lt;/p&gt;
&lt;h2 id="技术栈"&gt;技术栈&lt;/h2&gt;
&lt;p&gt;C#、VS2013、MongoDB、GridFS&lt;/p&gt;
&lt;h2 id="实现"&gt;实现&lt;/h2&gt;
&lt;p&gt;1 . 首先根据文件流得到md5值，代码如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; //计算文件的MD5码
 public static string GetMD5Hash(Stream stream)
 {
 string result = &amp;#34;&amp;#34;;
 string hashData = &amp;#34;&amp;#34;;
 byte[] arrbytHashValue;
 System.Security.Cryptography.MD5CryptoServiceProvider md5Hasher =
 new System.Security.Cryptography.MD5CryptoServiceProvider();

 try
 {
 arrbytHashValue = md5Hasher.ComputeHash(stream);//计算指定Stream 对象的哈希值
 //由以连字符分隔的十六进制对构成的String，其中每一对表示value 中对应的元素；例如“F-2C-4A”
 hashData = System.BitConverter.ToString(arrbytHashValue);
 //替换-
 hashData = hashData.Replace(&amp;#34;-&amp;#34;, &amp;#34;&amp;#34;);
 result = hashData;
 }
 catch (System.Exception ex)
 {
 //记录日志
 }

 return result;
 }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;2 . 根据md5值在GridFS中进行唯一性校验，方法如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; public string IsExist(string tag)
 {
 string id = &amp;#34;&amp;#34;;
 var files = _gridFs.Find(Query.EQ(&amp;#34;md5&amp;#34;, BsonValue.Create(tag)));
 if(files.Count() &amp;gt; 0)
 {
 id=files.FirstOrDefault().Id.ToString();
 }
 return id;
 }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3 . GridFS操作类的完整代码参考&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/oec2003/6c1d473a5a5b61a9d131"&gt;https://gist.github.com/oec2003/6c1d473a5a5b61a9d131&lt;/a&gt;&lt;/p&gt;</description></item><item><title>MongoDB(4)–MongoDB服务的启动</title><link>https://fwhyy.com/2011/11/mongo-service-startup/</link><pubDate>Thu, 03 Nov 2011 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2011/11/mongo-service-startup/</guid><description>&lt;h2 id="原始方式"&gt;原始方式&lt;/h2&gt;
&lt;p&gt;只有启动了MongoDB的服务，才能使用MongoDB的功能，通常情况下会开一个命令窗口，输入下面的命令来启动服务：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300726402.webp" alt="2011-10-14_222912" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="配置文件方式"&gt;配置文件方式&lt;/h2&gt;
&lt;p&gt;如果不想每次启动的时候都在命令行中输入很多繁琐的参数，可以把参数信息保存在配置文件中。创建一个名为mongodb.cnf的配置文件，和那些小工具放在同一个目录中，文件的内容如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dbpath=&amp;#34;d:\database\mongodb\data&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后在命令窗口输入下面命令就可以启动服务&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300726049.webp" alt="2011-10-14_225624" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;看似和上面的方法差不多，还是需要指定配置文件，但如果参数不止-dbpath的时候，就可以将参数都写在配置文件中，在命令行调用的时候就会显得方便很多。&lt;/p&gt;
&lt;h2 id="daemon方式"&gt;Daemon方式&lt;/h2&gt;
&lt;p&gt;上面介绍的两种方式启动服务都需要打开一个命令行窗口，窗口关闭了服务也就停止了。我们使用–fork参数可以将mongodb的服务放在后台运行，这样相对比较安全。–fork参数是和–logpath参数一起使用的&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300726756.webp" alt="2011-10-14_235943" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fwhyy.com/2011/09/some-concepts-about-nosql-and-mongodb/"&gt;MongoDB(3)–有关NoSQL及MongoDB的一些概念&lt;/a&gt;
&lt;a href="http://fwhyy.com/2011/09/mongvue-introduction/"&gt;MongoDB(2)–MongVUE介绍&lt;/a&gt;
&lt;a href="http://fwhyy.com/2011/09/mongo-introduction-and-installation/"&gt;MongoDB(1)&amp;ndash;MongoDB介绍及安装&lt;/a&gt;&lt;/p&gt;</description></item><item><title>MongoDB(3)–有关NoSQL及MongoDB的一些概念</title><link>https://fwhyy.com/2011/09/some-concepts-about-nosql-and-mongodb/</link><pubDate>Thu, 29 Sep 2011 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2011/09/some-concepts-about-nosql-and-mongodb/</guid><description>&lt;p&gt;学习任何东西在没有理解的前提下去背熟一些概念是没有用的，就像只背会了几个概念而没有理解的开发人员去面试是经不住面试官的追问的。前面的两篇对MongoDB做了简单的介绍，能够很快上手，对MongoDB有一个感性的认识。本篇大部分内容来自MongoDB权威指南和MongoDB实战。希望在学习完整个MongoDB后能对本篇的内容有一个全新的认识。&lt;/p&gt;
&lt;h2 id="nosql简介"&gt;NoSQL简介&lt;/h2&gt;
&lt;p&gt;NoSQL，全称是”Not Only Sql”,指的是非关系型的数据库。这类数据库主要有这些特点：非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模 web 应用，这场全新的数据库革命运动早期就有人提出，发展至2009 年趋势越发高涨。NoSQL 的拥护者们提 倡运用非关系型的数据存储，通常的应用如：模式自由、支持简易复制、简单的API、最终&lt;/p&gt;
&lt;p&gt;的一致性 （非ACID ）、大容量数据等。NoSQL 被我们用得最多的当数 key-value 存储，当然还 有其他的文档型的、列存储、图型数据库、xml 数据库等。相对于目前铺天盖地的关系型数 据库运用，这一概念无疑是一种全新思维的注入。&lt;/p&gt;
&lt;h2 id="nosql的优势"&gt;NoSQL的优势&lt;/h2&gt;
&lt;p&gt;同关系型数据库相比，NoSQL有下面的一些优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;适合对数据库高并发读写的需求。&lt;/li&gt;
&lt;li&gt;适合对海量数据的高效率存储和访问的需求。&lt;/li&gt;
&lt;li&gt;适合对数据库的高可扩展性和高可用性的需求。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;由于NoSQL的这些优势，使得NoSQL比较适合以下的一些场景的使用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对数据库事务一致性要求不高的时候，因为NoSQL不支持事务（MongoDB是不支持事务的，其他的没做研究）。&lt;/li&gt;
&lt;li&gt;对数据库的写实时性和读实时性要求不高的时候。&lt;/li&gt;
&lt;li&gt;对复杂的SQL 查询，特别是多表关联查询不多的时候。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nosql的特点"&gt;NoSQL的特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;它可以处理超大量的数据&lt;/li&gt;
&lt;li&gt;它运行在便宜的它运行在便宜的 PC 服务器集群上服务器集群上，意思是在数据库不够用的时候进行PC的集群扩展很方便并且成本很低。&lt;/li&gt;
&lt;li&gt;它击碎了性能瓶颈，因为使用NoSQL省去了传统的程序模型到SQL之间转换的时间，执行效率更高。&lt;/li&gt;
&lt;li&gt;它没有过多的操作，意思是去掉了很多在关系数据库中拥有而在实际又不怎么使用的功能。&lt;/li&gt;
&lt;li&gt;它的支持支持者源于社区者源于社区，所有的NoSQL产品都是开源的。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mongodb简介"&gt;MongoDB简介&lt;/h2&gt;
&lt;p&gt;MongoDB 是一个介于关系数据库和非关系数据库之间的产品，是非关系数据库当中功能最丰富，最像关系数据库的。他支持的数据结构非常松散，是类似json 的bjson 格式，简称BSON，因此可 以存储比较复杂的数据类型。MongoDB 最大的特点是他支持的查询语言非常强大，其语法有点类似于面向对象的查询语言，几乎可以实现类似关系数据库单表查询的绝大部分功能， 而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。&lt;/p&gt;
&lt;h2 id="mongodb特点"&gt;MongoDB特点&lt;/h2&gt;
&lt;h3 id="1-丰富的数据模型"&gt;1 丰富的数据模型&lt;/h3&gt;
&lt;p&gt;MongoDB是一种面向文档的数据库。在MongoDB中文档就相当于关系型数据库中的行。文档中可以包含很复杂的数据结构，这样一条记录就可以表示很复杂的层级关系。比如说文章表有一个字段是评论，在关系型数据库中我们通常会建一个评论表和文章表做关联，在MongoDB中就可以直接将评论存在一条文章记录的文档中。更符合我们的思维。&lt;/p&gt;
&lt;p&gt;MongoDB没有模式，也就是说没有表结构，文档的字段可以随时添加，不会对原来数据有任何影响，使开发变得很容易。&lt;/p&gt;
&lt;h3 id="2-容易扩展"&gt;2 容易扩展&lt;/h3&gt;
&lt;p&gt;在一些大型的网站中，数据的增长是非常惊人的。在面临数据增长机器不够用的时候通常有两种做法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;购买更高配置的机器，会花费很大，而且达到物理极限后花钱也买不到更高配置的了。&lt;/li&gt;
&lt;li&gt;进行扩展，将数据分散到多个机器上，这种在操作上会显得复杂点。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MongoDB的设计就考虑到了扩展的问题，它所采用的面向文档的数据模型使得可以自动在多台服务器中切割数据。还可以平衡群集的数据和负载，自动进行文档重排。&lt;/p&gt;
&lt;h3 id="3-丰富的功能"&gt;3 丰富的功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;索引：MongoDB支持通用辅助索引，可以进行多种快速查询。&lt;/li&gt;
&lt;li&gt;存储Javascript：不必再使用存储过程了，可以直接在服务器端存取Javascript的函数和值。&lt;/li&gt;
&lt;li&gt;聚合：MongoDB支持MapReduce和其他聚合工具。&lt;/li&gt;
&lt;li&gt;固定集合：集合的大小是有上限的，这对于日志一类的数据很有用。&lt;/li&gt;
&lt;li&gt;存储文件：MongoDB支持用一种容易使用的协议（GridFS）来存储大型文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-更快的速度"&gt;4 更快的速度&lt;/h3&gt;
&lt;p&gt;高性能是MongoDB的目标，为了提高性能，就必须进行很多精简的设计，相比关系型数据库少了很多功能，但仍然保持着关系型数据库的众多的特性。一些精简设计表现在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用MongoDB传输协议作为与服务器交互的主要方式，将比较HTTP、Reset等可以节省不少开销。&lt;/li&gt;
&lt;li&gt;对文档进行动态填充，预分配数据文件，用空间换取时间，而且空间对于现在来说已不是问题。&lt;/li&gt;
&lt;li&gt;默认的存储引擎使用内存映射文件，将内存管理工作交给OS去处理。&lt;/li&gt;
&lt;li&gt;动态查询优化器会记住执行查询最高效的方式。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-简单的管理"&gt;5 简单的管理&lt;/h3&gt;
&lt;p&gt;MongoDB尽量让服务器自治来简化数据库的管理。除了启动数据库服务器之外，几乎没有什么管理操作了。如果主服务器挂掉了，MongoDB会自动切换到备份服务器上，并将备份服务器提升为活跃服务器。在分布式的环境下，群集只需要知道有新的节点就会自动集成和配置新的节点。&lt;/p&gt;
&lt;h2 id="mongodb适用场景"&gt;MongoDB适用场景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;网站数据：MongoDB非常适合实时的插入，更新与查询，并具备网站实时数据存储所 需的复制及高度伸缩性 。&lt;/li&gt;
&lt;li&gt;缓存：由于性能很高，MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后， 由MongoDB 搭建的持久化缓存层可以避免下层的数据源过载 。&lt;/li&gt;
&lt;li&gt;大尺寸，低价值的数据：使用传统的关系型数据库存储一些数据时可能会比较昂贵，在此之前，很多时候程序员往往会选择传统的文件进行存储 。&lt;/li&gt;
&lt;li&gt;高伸缩性的场景：MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB的路线图中已经包含对MapReduce 引擎的内置支持 。&lt;/li&gt;
&lt;li&gt;用于对象及JSON 数据的存储：MongoDB 的BSON 数据格式非常适合文档化格式的存储及查询 。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>MongoDB(2)–MongVUE介绍</title><link>https://fwhyy.com/2011/09/mongvue-introduction/</link><pubDate>Tue, 20 Sep 2011 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2011/09/mongvue-introduction/</guid><description>&lt;p&gt;对于数据库来说有一款功能强大的管理工具将会大大的提高我们的工作效率。对于MongoDB来说MongoVUE就是这样一款工具，MongoVUE在1.0版以后就开始收费了，所以我现在用的还是0.9.7.2版。对于初学来时已经够用了。&lt;/p&gt;
&lt;p&gt;安装运行后的界面如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300728711.webp" alt="2011-09-12_150826-300x199" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;点击Connect来连接MongoDB数据库&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300728115.webp" alt="2011-09-12_150941-300x225" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;填写好Name 和Server后点击Save，Name随便给取个名字就型，Server为服务器的地址，本机即127.0.0.1，Port默认为27017，可以根据实际情况进行设置。保存后在Connect界面就多了一个MyMongoDB的数据库连接，点击Connect即可连接到数据库。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300728285.webp" alt="2011-09-12_200130" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;除了系统默认的admin和local数据库外，在上一篇中创建的Blogs数据库也在列表中。并且在Blogs库中已经存在一个Collection，就是在上篇中insert的一条数据。双击Posts，在右边的窗口中会展示数据，分为三个Tab页来进行展示，分别是树状结构、表结构（类似关系型数据库的展示方式）和文本结构（BSON）。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300728453.webp" alt="2011-09-12_200949-300x203" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;本篇就介绍到这里，更多的功能和用法还是让读者自己下载试用吧。&lt;/p&gt;
&lt;p&gt;MongoDB0.9.7.2 版下载：&lt;a href="http://download.csdn.net/detail/oec2003/3595146"&gt;http://download.csdn.net/detail/oec2003/3595146&lt;/a&gt;&lt;/p&gt;</description></item><item><title>MongoDB(1)--MongoDB介绍及安装</title><link>https://fwhyy.com/2011/09/mongo-introduction-and-installation/</link><pubDate>Tue, 13 Sep 2011 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2011/09/mongo-introduction-and-installation/</guid><description>&lt;p&gt;NoSql已经流行好一阵子了，我似乎接触的有点晚了。NoSql的产品有很多，MongoDB只是其中一种，之所以选在学习MongoDB是因为最早知道的就是她，也比较具有代表性。&lt;/p&gt;
&lt;p&gt;MongoDB相比传统的关系型数据库有一些优势，比如在海量数据下的性能表现、很好的扩展性等。初识MongoDB感觉和关系型数据库最大的区别就是没有关系型数据库中的那种关系模型，更准确的说她是一个面向文档的数据库。通俗的讲在MongoDB中集合对应关系型数据库的表，文档对应着行。在MongoDB中一条记录的表现形式是BSON的格式，和JavaScript中的JSON类似。&lt;/p&gt;
&lt;h2 id="mongdb的下载安装"&gt;MongDB的下载安装&lt;/h2&gt;
&lt;p&gt;下载地址：&lt;a href="http://www.mongodb.org/downloads"&gt;http://www.mongodb.org/downloads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载下来的是一个mongodb-win32-i386-1.8.2.zip文件，将该文件解压，会发现里面的bin目录下有很多的exe文件，这些是MongoDB的一些工具，比如要启动MongoDB服务就要用到里面的Mongod.exe。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300726967.webp" alt="2011-09-12_114648" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bsondump: 将 bson 格式的文件转储为json 格式的数据&lt;/li&gt;
&lt;li&gt;mongo: 客户端命令行工具，其实也是一个javascript解释器，支持javascript语法&lt;/li&gt;
&lt;li&gt;mongod: 数据库服务端，每个实例启动一个进程，可以fork 为后台运行&lt;/li&gt;
&lt;li&gt;mongodump/ mongorestore: 数据库备份和恢复工具&lt;/li&gt;
&lt;li&gt;mongoexport/ mongoimport: 数据导出和导入工具&lt;/li&gt;
&lt;li&gt;mongofiles: GridFS 管理工具，可实现二制文件的存取&lt;/li&gt;
&lt;li&gt;mongos: 分片路由，如果使用了sharding功能，则应用程序连接的是 mongo而不是 mongod&lt;/li&gt;
&lt;li&gt;mongosniff: 这一工具的作用类似于tcpdump，不同的是他只监控MongoDB 相关的包请求，并且是以指定的可读性的形式输出&lt;/li&gt;
&lt;li&gt;mongostat: 实时性能监控工具&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;要正常的使用MongoDB首先要做的就是启动MongoDB服务，打开CMD进入到MongoDB的bin目录，执行Mongod.exe，如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300726870.webp" alt="2011-09-12_132542-300x66" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;可以看到在mongod.exe 后面有一个-dbpath来制定数据库的存放路径。这个目录我们必须事先创建好。如果没有制定-dbpath，会使用默认路径：C：\data\db\。&lt;/p&gt;
&lt;p&gt;下面就可以在MongoDB中来创建数据库了，本文中使用MongoDB自带的Shell来进行操作，在下一篇中将介绍MongoDB的一款IDE工具MongoVUE，使用bin先的mongo.exe可以打开Shell窗口。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300727903.webp" alt="2011-09-12_133937-300x58" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;执行show dbs命令可以查看所有数据库的列表，关于更多的Shell命令可以通过执行help命令查看。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300727232.webp" alt="2011-09-12_142453" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;admin和local数据库是MongoDB自带的数据库，这两个数据库在系统中有特殊的作用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;admin：最高权限的一个数据库，该数据库中的用户会拥有所有数据库的权限。一些特殊的服务器端的命令也只能从这个数据库中运行。&lt;/li&gt;
&lt;li&gt;local：该数据库不会被复制，可以用来存储限与本地单台服务器的任意集合。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在MongoDB的Shell命令中并没有创建数据库的命令，假设现在要创建一个名为Blogs的数据库，并在这个数据库中添加集合和文档，我们可以想下面这样做：&lt;/p&gt;
&lt;p&gt;1 执行use Blogs命令将数据库切换到Blogs，当然此时Blogs还并没有被创建。&lt;/p&gt;
&lt;p&gt;2 创建一条数据记录保存在一个变量post中，执行db.Blogs.insert(post)。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300727969.webp" alt="2011-09-12_201351-300x91" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;这时可以看在在上面设定的路径中已经生产了数据库的文件：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201300727295.webp" alt="2011-09-12_201414-300x103" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;有关更多的Shell命令使用在后面的文章中再介绍。&lt;/p&gt;
&lt;h2 id="mongodb-drivers"&gt;MongoDB Drivers&lt;/h2&gt;
&lt;p&gt;要在程序中使用MongoDB，需要要到MongoDB针对某一语言的驱动，在MongoDB的官网中已经提供了Ruby 、Python、C#、PHP等多种语言的驱动。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;驱动列表页：&lt;a href="http://www.mongodb.org/display/DOCS/Drivers"&gt;http://www.mongodb.org/display/DOCS/Drivers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C#驱动下载：&lt;a href="https://github.com/samus/mongodb-csharp"&gt;https://github.com/samus/mongodb-csharp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对MongoDB的简单介绍就到此，后面的文章会用C#来写一个完整的示例。&lt;/p&gt;</description></item></channel></rss>