转自:http://blog.csdn.net/han_yankun2009/article/details/17050959
Mongodb
一般指分布式文档存储数据介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.
我们这次项目中用到的就是它的这两个特点
特点:
使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
面向集合存储,易存储对象类型的数据。
关于mongdb的数据数据操作,攀比SQL Server ,mongodb的操作和它真是有的一比,几乎是如出一辙。增删改查,样样都有。
下面咱就看看它的连接和查询方式吧。
当然在使用mongodb数据库之前是要先引入它的一些驱动程序的,(我这里使用的是官方提供的两个驱动程序)所谓的就是两个Dll类库文件。分别是
MongoDB.Driver.dll:顾名思义,驱动程序
MongoDB.Bson.dll:序列化、Json相关。
之后我们在自己所用的程序中引入这两个dll文件和导入命名空间。
下列就是具体的实例代码了
1 链接数据库
///初始化Mongodb数据库链接
- public void Init()
- {
- //数据库连接字符串,207017是mongodb的数据库端口
- ConnectionString="mongodb://Localhost:27017/?safe=true"/>
- //数据库名称
- conststring dbName ="ExamDB";
- //创建数据库连接
- MongoServerSettingssettings= new MongoServerSettings();
- settings.MaxConnectionPoolSize = 1000;//设定最大连接池
- //等待列队数量
- settings.WaitQueueSize = 50;
- MongoServer server=MongoServer.Create(settings);//创建连接数据文件
- //获得数据库cnblogs
- MongoDatabase db=server.GateDataBase(dbName);
- }
通过我们先前的Sql链接数据库我们发现几乎没有什么不同,这是名字换了下而已。所以不同的数据库操作,只要认识了一种,熟悉后,对别的数据库操作,上手是很容易的。
- string connStr =ConfigurationManager.AppSettings["connstr"]; //获取配置文件的连接
- conn = new SqlConnection(connStr);
- conn.open();
2插入数据
好了数据打开了,现在得添加数据了,由于mongodb没有表的概念,只有数据集合,所以我们插入数据,就要设定数据的集合名称。(但这里很类似表,只是存储的数据不再受表的限制,它是对象集合,所以可以存储任意的数据类型):
- public static stringfileTable = "files";//设定查询的集合名称
- //Httpcontext类是获取前台的数据
- Public bool Insert(HttpContext contex)
- {
- MongoDatabase db = Init();
- // MongoGridFS fs = newMongoGridFS(db); //如果不设定查询的集合,则默认读取的集合表名是filse
- //定义设定集合对象,设定查询的集合
- MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = fileTable };
- //定义文件的操作对象,可以执行文件的增加,删除和更新操作
- MongoGridFS fs = new MongoGridFS(DB, fsSetting);
- // 摘要: public sealed class HttpPostedFile.ContentLength
- // 获取上载文件的大小(以字节为单位)。
- // 返回结果:
- // 文件长度(以字节为单位)。
- //定义文件字节流对象
- HttpPostedFile file =context.Request.Files["Filedata"];
- int nFileLen = file.ContentLength;// 文件长度(以字节为单位)
- byte[]myData = new Byte[nFileLen];
- file.InputStream.Read(myData, 0, nFileLen).//将文件以字节流的形式写入
- //添加文件上传的附件信息,可以添加很多,这里只做个实例
- MongoGridFSCreateOptions option = new MongoGridFSCreateOptions();
- option.UploadDate = DateTime.Now;
- //Using语句实现销毁链接方式
- //MongoGirdFSStream可以实现文件的度和取得操作,
- //创建文件,文件并存储数据
- using(MongoGridFSStream gfs = fs.Create(file.FileName, option))
- {
- gfs.Write(myData, 0,nFileLen);
- gfs.Close();
- }
- }
通过实例我们发现,Mongodb的操作和SQLServer的操作是很大程度上是相识的,包括增,删除,添加和修改等方式,只是名字不同。我们不必因为是一个新的东西而听着害怕这种感觉,只要肯联系和观察思考,就会发现和以往有很多联系之处的
以上只是一个简单的上传的实例,具体的更多的方法还等待大家继续去实践。后续继续说明Mongodb的一些配置。
相关推荐
非结构化数据库MongoDB的数据存储 一、MongoDB的基本概念和特点 MongoDB是一种基于分布式文件存储的数据库,它采用NoSQL(Not Only SQL)架构,以文档为单位进行数据存储。与传统的关系型数据库相比,MongoDB具有...
MongoDB是一个流行的开源、分布式文档数据库,被广泛用于处理结构化和半结构化的数据。其设计目标是提供高性能、高可用性和易于扩展性。在深入探讨MongoDB的元数据和数据类型之前,我们先理解一下这两个概念。 元...
本文旨在在JSON格式的非结构化数据表示中,建立关系Microsoft SQL Server数据库和非关系MongoDB数据库之间的相关研究。 关于基于性能,安全性等方面的多个数据库管理应用程序的比较,需要做大量的工作,但是在基于...
mongodb 数据库基本操作 1、mongoDB的介绍 mongoDB是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它介于关系数据库和非关系数据库之间,被认为是非...
相较于传统的关系型数据库,如MySQL或PostgreSQL,MongoDB采用的是文档型数据模型,这使得它在处理半结构化和非结构化数据时更为高效。在本篇MongoDB学习笔记中,我们将探讨如何利用MongoDB的文档结构来描述数据关系...
1. 解决关系型数据库存储非结构化数据的缺陷:关系型数据库如 MySQL 不适合存储大量非结构化数据,而 MongoDB 则具有存储海量非结构化数据的优势。 2. 提高电子政务平台的查询效率:混合存储策略可以大大提高电子...
总之,Java 与 MongoDB 结合提供了一种强大而灵活的方式来处理非结构化和半结构化数据,适用于现代 Web 应用和大数据处理场景。通过不断学习和实践,开发者可以更好地利用这两个工具来构建高效的应用程序。
MongoDB 的优势在于其出色的文档查询性能,尤其适合处理非结构化数据,如用户操作记录、订单流水和用户评论等。然而,对于需要严格数据结构和事务操作的场景,如银行交易或会计系统,MongoDB 就可能不是最佳选择。在...
MongoDB的灵活性使其成为处理非结构化和半结构化数据的理想选择,特别适用于互联网应用、实时分析和大数据存储。通过学习MongoDB的基本概念、安装和连接,开发者可以快速入门并开始利用其强大功能来构建高效的数据...
在云环境中,通过组建MongoDB节点的存储资源网,可以实现非结构化数据的分布式存储,无需预先定义数据模式,提高了系统的灵活性和扩展性。 云数据管理的关键在于如何实现数据的高效存储、快速检索和安全备份。...
这使得 MongoDB 能够轻松地存储和处理大量的半结构化数据。 MongoDB 的架构主要包括三个部分:数据存储层、查询处理层和数据处理层。数据存储层负责存储数据,查询处理层负责处理查询请求,数据处理层负责处理数据...
本文将详细介绍如何使用PHP连接MongoDB、选择数据库、操作集合以及进行数据插入、查询等操作。 首先,要连接MongoDB,可以实例化`Mongo`类。默认情况下,`new Mongo()`会连接到本地主机的27017端口。如果需要连接到...
它的设计目标是提供一个灵活且可扩展的解决方案,特别适合处理大量结构化和半结构化的数据。 在MongoDB中,数据是以文档的形式存储的,这些文档是由键值对组成的,并且通常以JSON(JavaScript Object Notation)或...
本手册主要介绍了银河麒麟服务器操作系统的概述、环境概述、Mongodb软件简介、Mongodb特点、Mongodb使用原理、Mongodb数据逻辑结构、Mongodb软件适配和Mongodb常见操作等知识点。 1. 银河麒麟服务器操作系统概述 ...
1. **面向集合存储**:MongoDB 将数据存储为文档,这些文档是由键值对组成的,适合存储结构化的、半结构化的和非结构化的数据。 2. **模式自由**:MongoDB 不需要预定义模式,允许每个文档拥有不同的字段和数据类型...
Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...
传统型数据库: 结构化数据, 定好了表结构后,每一行的内容,必是符合表结构的,就是说--列的个数,类型都一样. mongo文档型数据库: 表下的每篇文档,都可以有自己独特的结构(json对象都可以有自己独特的属性和值)
MongoDB 是一个流行的开源文档型数据库,用于存储和管理非结构化数据。针对 MongoDB 的优化是提高数据库性能的关键,这通常涉及到多个方面,包括内存配置、查询优化、索引管理和集群架构调整等。 首先,我们可以...
在PHP中操作MongoDB是一种常见的任务,MongoDB是一种流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。PHP的MongoDB扩展提供了一种简单的方式来与MongoDB交互。以下是关于如何使用PHP...
本文实例讲述了MongoDB数据库安装配置、基本操作。...– 高度组织化结构化数据 – 结构化查询语言(SQL) – 数据和关系都存储在单独的表中。 – 数据操纵语言,数据定义语言 – 严格的一致性 – 基础事务