转自: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数据库之间的相关研究。 关于基于性能,安全性等方面的多个数据库管理应用程序的比较,需要做大量的工作,但是在基于...
在PHP开发中,MongoDB是一个广泛使用的文档型数据库系统,尤其适合处理大量非结构化数据。这个"php Mongodb操作类"是专为在PHP环境中与MongoDB数据库进行交互而设计的工具,允许开发者轻松地执行创建(Create)、...
mongodb 数据库基本操作 1、mongoDB的介绍 mongoDB是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它介于关系数据库和非关系数据库之间,被认为是非...
1. 数据浏览:可视化工具通常会展示数据库的结构,包括集合(等同于关系型数据库中的表)、文档(记录)和字段。用户可以通过树状视图或表格形式查看和筛选数据,无需编写复杂的查询语句。 2. 查询构建:这些工具...
它采用了NoSQL的数据模型,这使得它在处理非结构化和半结构化数据时表现出色。在本压缩包中,你将找到MongoDB的安装包,以及可能包含的一些图形化工具和相关的学习资料,这些都是MongoDB开发和管理的重要组成部分。 ...
相较于传统的关系型数据库,如MySQL或PostgreSQL,MongoDB采用的是文档型数据模型,这使得它在处理半结构化和非结构化数据时更为高效。在本篇MongoDB学习笔记中,我们将探讨如何利用MongoDB的文档结构来描述数据关系...
1. 解决关系型数据库存储非结构化数据的缺陷:关系型数据库如 MySQL 不适合存储大量非结构化数据,而 MongoDB 则具有存储海量非结构化数据的优势。 2. 提高电子政务平台的查询效率:混合存储策略可以大大提高电子...
总之,Java 与 MongoDB 结合提供了一种强大而灵活的方式来处理非结构化和半结构化数据,适用于现代 Web 应用和大数据处理场景。通过不断学习和实践,开发者可以更好地利用这两个工具来构建高效的应用程序。
作为NoSQL数据库的一种,MongoDB不采用传统的表格和列式数据模型,而是使用键值对、文档、集合和数据库的结构来存储数据,这使得它在处理JSON、XML等半结构化和非结构化数据时表现出色。 MongoDB的主要特点包括: ...
MongoDB提供的丰富的API和功能使得它成为处理大量非结构化数据的理想选择,尤其适合大数据和实时分析场景。 总之,MongoDB的增加、删除和查询操作构成了其核心功能,它们在数据管理中扮演着重要角色。通过熟练运用...
在MATLAB中与MongoDB进行交互,可以帮助科研人员和工程师快速处理和分析数据,尤其适用于那些需要处理非结构化或半结构化数据的场景。MATLAB提供了连接MongoDB的接口,使得用户可以方便地进行数据的读取、写入和查询...
MongoDB的设计理念是为了解决大规模数据存储问题,尤其适用于处理大量非结构化或半结构化数据。在本文中,我们将深入探讨MongoDB的基础知识,包括其核心特性、数据模型、查询操作、索引建立以及与PHP的集成,通过...
MongoDB是一种流行的开源、分布式文档数据库,用于存储结构化和半结构化数据。它以其灵活性、高性能和易于扩展性而闻名。在这个主题中,我们将深入探讨MongoDB的安装配置以及如何使用Java进行操作。 首先,让我们看...
MongoDB 的优势在于其出色的文档查询性能,尤其适合处理非结构化数据,如用户操作记录、订单流水和用户评论等。然而,对于需要严格数据结构和事务操作的场景,如银行交易或会计系统,MongoDB 就可能不是最佳选择。在...
- MongoDB:适用于互联网应用、日志分析、物联网(IoT)等需要处理大量非结构化或半结构化数据的场景。 6. 开发者友好性: - MySQL:丰富的开发库和工具,广泛应用于各种编程语言,社区活跃。 - MongoDB:同样有...
在这个快速发展的数字时代,NoSQL数据库如MongoDB正逐渐成为处理大量非结构化数据的首选解决方案。 首先,我们要理解NoSQL的含义。NoSQL(Not Only SQL)并不意味着完全不使用SQL,而是指那些非关系型、非传统、...
MongoDB的灵活性使其成为处理非结构化和半结构化数据的理想选择,特别适用于互联网应用、实时分析和大数据存储。通过学习MongoDB的基本概念、安装和连接,开发者可以快速入门并开始利用其强大功能来构建高效的数据...
然而,随着NoSQL数据库的兴起,MongoDB因其灵活性和非结构化数据处理能力,也成为了许多Web应用程序的选择。本文将深入探讨如何在Ruby on Rails中集成并操作MongoDB。 首先,我们需要安装必要的库。MongoDB的Ruby...