分布式文件存储的数据库开源项目MongoDB

MongoDB是一个按照分布式文件存储的数据库开源项目。由C++语言编写。目的在于为WEB应用提供可护展的高性能数据存储解决方案。

它的特点是高性能、易部署、易使用,存储数据万分便利。首要职能特色有:

  • 面向集合存储,易积存对象类型的多寡。
  • 模式自由。
  • 援助动态查询。
  • 支撑完全索引,包含其中对象。
  • 支撑查询。
  • 支撑复制和故障苏醒。
  • 应用高效的二进制数据存储,包括大型对象(如视频等)。
  • 电动处理碎片,以匡助云总结层次的增加性
  • 襄助RUBY,PYTHON,JAVA,C++,PHP等多种语言。
  • 文本存储格式为BSON(一种JSON的扩张)
  • 可通过网络访问

所谓“面向集合”(Collenction-Orented),意思是多少被分组存储在数据集中,被誉为一个会聚(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以蕴涵无限数目标文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何情势(schema)。

情势自由(schema-free),意味着对于仓储在mongodb数据库中的文件,我们不需要知道它的别样社团定义。如若需要的话,你完全可以把不同结构的公文存储在同一个数据库里。

仓储在汇集中的文档,被储存为键-值对的格局。键用于唯一标识一个文档,为字符串类型,而值则足以是各中复杂的文件类型。我们称这种存储格局为BSON(Binary
Serialized dOcument Format)。

MongoDB服务端可运行在Linux、Windows或OS
X平台,帮助32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运作时帮忙的最大文件尺寸为2GB。

MongoDB把多少存储在文件中(默认路径为:/data/db),为进步效能使用内存映射文件举行管制。

在Windows下安装:

1、 到http://www.mongodb.org/display/DOCS/Downloads
下载32位依旧64位版本文件

2、 解压缩文件,例如我解压到E:\Workshop\No
SQL\mongodb-win32-i386-1.4.2\

3、
WINDOWS会存放在C:\data\db下。可以在启动时使用–dbpath参数指定存储目录并启动。成立数量目录E:\Workshop\No
SQL\mongodb-win32-i386-1.4.2\bin\data\db
如:E:\Workshop\NoSQL\mongodb-win32-i386-1.4.2\bin>”E:\Workshop\No
SQL\mongodb-win32-i386-1.4.2\bin\mongod.exe” –dbpath .\data\db

开行数据库

图片 1

今天大家就可以动用自带的shell工具来操作数据库了.
(大家也足以使用各个编程语言的驱动来利用MongoDB,
自带的shell工具得以方便大家管理数据库)

图片 2

“connecting to:” 这一个会显得你正在拔取的数据库的名称. 想换数据库的话能够:
use mydb

图片 3

使用.NET操作MongoDB万分简单,从github.com/samus/mongodb-csharp下载.NET的驱动,在档次中援引驱动的次第集就可以了。

要成立MongoDB的连天,你倘若指定要连续到的数据库就足以。这么些数据库不肯定存在,尽管不存在,MongoDB会先为你建立这一个库。同时,在一连时你也得以具体指定要连续到的网络地址和端口。

string connstr = ConfigurationManager.AppSettings[“simple”];

if (String.IsNullOrEmpty(connstr)) throw new
ArgumentNullException(“Connection string not found.”);

Mongo mongo = new Mongo(connstr);

mongo.Connect();

配置

<?xml version=”1.0″ encoding=”utf-8″ ?>

<configuration>

<appSettings>

<add key=”simple” value=”Server=localhost:27017″/>

</appSettings>

</configuration>

各种数据库都设有零个或两个会聚,需要时您可以拿到他们的列表:

Database simple = mongo[“simple”];

List<string> collectionNames = simple.GetCollectionNames();

要取得某个特定集合,你可以指定集合的名字,并行使GetCollection()方法或者使Index:

IMongoCollection categories = simple.GetCollection(“categories”);

IMongoCollection categories = simple[“categories”];

当你获取了那么些集合对象,你就足以对数据进行增删查改之类的操作。

当你获取了一个集结对象,你就可以把文档插入到这一个指标中。

var names = new string[] { “Bluez”, “Jazz”, “Classical”, “Rock”,
“Oldies”, “Heavy Metal” };

foreach (string name in names)

{

categories.Insert(new Document() { { “name”, name } });

}

要摸索大家上一步插入的老大文档,可以概括地采取findOne()操作来得到集合中率先个文档。这些主意再次回到一个单纯文档.

var category = categories.FindOne(new Document { { “name”, “Bluez” } });

Console.WriteLine(“The id findOne” + category[“_id”]);

 

为了通常使用方便,把mongod注册为系统服务
“D:\Workshop\Mongo\mongodb-win32-x86_64-2.0.3\bin\mongod”
–dbpath  “D:\Workshop\Mongo\mongodb-win32-x86_64-2.0.3\data” 
–logpath 
“D:\Workshop\Mongo\mongodb-win32-x86_64-2.0.3\log\mongodblog.log” 
–service  –serviceName MongoDB 

#登记为系统服务修改服务的端口 D:\mongodb\bin\mongod –-dbpath
“D:\data” –-port 10001

修改注册表,把—install 改成—service

MongoDB : Windows
Service

mongodb小结

Going NoSQL with
MongoDB

http://cookbook.mongodb.org/

有关MongoDB在64位服务器上仍然报 mmap failed with out of memory 错误的缓解形式(附Mysql性能相比较测试)

通过 MongoDB 使用 NoSQL

http://msdn.microsoft.com/zh-cn/magazine/ee310029.aspx

http://msdn.microsoft.com/zh-cn/magazine/ff714592.aspx

http://msdn.microsoft.com/zh-cn/magazine/ff798277.aspx

http://www.ibm.com/developerworks/cn/opensource/os-mongodb4/index.html

相关文章