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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

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:WorkshopNo SQLmongodb-win32-i386-1.4.2\

3、 WINDOWS会存放在C:datadb下。可以在启动时使用--dbpath参数指定存储目录并启动。创建数据目录E:WorkshopNo SQLmongodb-win32-i386-1.4.2bindatadb 如:E:WorkshopNoSQLmongodb-win32-i386-1.4.2bin>"E:WorkshopNo SQLmongodb-win32-i386-1.4.2binmongod.exe" --dbpath .datadb

启动数据库


d10e4fd15f900d137e6fffa60e90a76f527d6b53

使用.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:mongodbbinmongod –-dbpath “D:data” –-port 10001

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

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
2月前
|
NoSQL 关系型数据库 MySQL
开源数据库
【8月更文挑战第26天】开源数据库
50 11
|
2月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
117 0
|
1月前
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。
|
2月前
|
SQL Oracle 关系型数据库
DBeaver,一款好用的开源数据库管理软件
DBeaver,一款好用的开源数据库管理软件
|
2月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
61 5
|
2月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
2月前
|
关系型数据库 Linux Shell
跟我一起来学国内排名NO.1的开源数据库安装
跟我一起来学国内排名NO.1的开源数据库安装
30 0
跟我一起来学国内排名NO.1的开源数据库安装
|
2月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
37 1
|
2月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
45 0
下一篇
无影云桌面