`
xinklabi
  • 浏览: 1605372 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

MongoDB操作非结构化数据

 
阅读更多

转自: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数据库链接

 

[csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
 
  1. public void Init()  
  2.     {  
  3.    
  4.    
  5. //数据库连接字符串,207017是mongodb的数据库端口  
  6. ConnectionString="mongodb://Localhost:27017/?safe=true"/>  
  7.  //数据库名称  
  8.  conststring dbName ="ExamDB";  
  9. //创建数据库连接  
  10.    
  11.  MongoServerSettingssettings= new MongoServerSettings();  
  12.  settings.MaxConnectionPoolSize = 1000;//设定最大连接池  
  13. //等待列队数量  
  14.   settings.WaitQueueSize = 50;  
  15.  MongoServer server=MongoServer.Create(settings);//创建连接数据文件  
  16.  //获得数据库cnblogs  
  17. MongoDatabase db=server.GateDataBase(dbName);  
  18.    
  19. }  



 

 

通过我们先前的Sql链接数据库我们发现几乎没有什么不同,这是名字换了下而已。所以不同的数据库操作,只要认识了一种,熟悉后,对别的数据库操作,上手是很容易的。

         

[csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
 
  1. string connStr =ConfigurationManager.AppSettings["connstr"]; //获取配置文件的连接  
  2.           conn = new SqlConnection(connStr);  
  3.   conn.open();  

 

 

 

2插入数据

 

好了数据打开了,现在得添加数据了,由于mongodb没有表的概念,只有数据集合,所以我们插入数据,就要设定数据的集合名称。(但这里很类似表,只是存储的数据不再受表的限制,它是对象集合,所以可以存储任意的数据类型):

 

 

[csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
 
  1.  public static stringfileTable = "files";//设定查询的集合名称  
  2. //Httpcontext类是获取前台的数据  
  3. Public bool Insert(HttpContext contex)  
  4. {  
  5.             MongoDatabase db = Init();  
  6. // MongoGridFS fs = newMongoGridFS(db); //如果不设定查询的集合,则默认读取的集合表名是filse  
  7. //定义设定集合对象,设定查询的集合  
  8.             MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = fileTable };  
  9. //定义文件的操作对象,可以执行文件的增加,删除和更新操作  
  10.     MongoGridFS fs = new MongoGridFS(DB, fsSetting);        
  11.  // 摘要:  public sealed class HttpPostedFile.ContentLength  
  12.  //    获取上载文件的大小(以字节为单位)。  
  13.  // 返回结果:  
  14.  // 文件长度(以字节为单位)。  
  15. //定义文件字节流对象  
  16.  HttpPostedFile file =context.Request.Files["Filedata"];  
  17.  int nFileLen = file.ContentLength;//     文件长度(以字节为单位)         
  18. byte[]myData = new Byte[nFileLen];  
  19.  file.InputStream.Read(myData, 0, nFileLen).//将文件以字节流的形式写入  
  20.    
  21. //添加文件上传的附件信息,可以添加很多,这里只做个实例  
  22.  MongoGridFSCreateOptions option = new MongoGridFSCreateOptions();  
  23.  option.UploadDate = DateTime.Now;  
  24. //Using语句实现销毁链接方式  
  25. //MongoGirdFSStream可以实现文件的度和取得操作,  
  26.  //创建文件,文件并存储数据  
  27. using(MongoGridFSStream gfs = fs.Create(file.FileName, option))  
  28.                 {  
  29.                     gfs.Write(myData, 0,nFileLen);  
  30.                     gfs.Close();  
  31. }  
  32.    
  33. }  



 

 

 

通过实例我们发现,Mongodb的操作和SQLServer的操作是很大程度上是相识的,包括增,删除,添加和修改等方式,只是名字不同。我们不必因为是一个新的东西而听着害怕这种感觉,只要肯联系和观察思考,就会发现和以往有很多联系之处的

以上只是一个简单的上传的实例,具体的更多的方法还等待大家继续去实践。后续继续说明Mongodb的一些配置。

分享到:
评论

相关推荐

    PostgreSQL与MongoDB处理非结构化数据性能比较.rar

    在数据库领域,PostgreSQL和MongoDB都是备受瞩目的明星产品,尤其在处理非结构化数据方面,两者各有优势。本文将深入探讨这两种数据库在处理非结构化数据时的性能差异,帮助你理解它们的设计理念、功能特点以及适用...

    SpringBoot+MongoDB+Echarts图表数据可视化

    它的非关系型特性使得处理JSON、BSON格式的数据变得简单,特别适合处理大量结构化但又不完全符合传统表格模型的数据。MongoDB提供了丰富的查询API和数据聚合框架,能够高效地读取和存储数据。在本项目中,MongoDB...

    mongodb-测试数据

    MongoDB使用JSON格式的文档(BSON)作为其数据存储单位,这种格式易于理解和处理,尤其适合处理结构松散或半结构化数据。数据库由集合组成,集合又由文档构成。它支持丰富的查询语法,可以进行复杂的聚合操作,同时...

    非结构化数据库MongoDB的数据存储.pptx

    非结构化数据库MongoDB的数据存储 一、MongoDB的基本概念和特点 MongoDB是一种基于分布式文件存储的数据库,它采用NoSQL(Not Only SQL)架构,以文档为单位进行数据存储。与传统的关系型数据库相比,MongoDB具有...

    mongodb与oralce的数据同步

    首先,关于MongoDB的CRUD(创建、读取、更新、删除)操作,MongoDB使用的是JSON格式的文档存储,这使得它在处理结构化和半结构化数据时非常灵活。在Java中,我们可以使用MongoDB的Java驱动程序来执行这些操作。例如...

    MongoDB的元数据与数据类型.pdf

    MongoDB是一个流行的开源、分布式文档数据库,被广泛用于处理结构化和半结构化的数据。其设计目标是提供高性能、高可用性和易于扩展性。在深入探讨MongoDB的元数据和数据类型之前,我们先理解一下这两个概念。 元...

    基于Hadoop与MongoDB整合技术的大数据处理分析.pdf

    MongoDB擅长于处理和存储大量非结构化或半结构化数据,并且能够处理高速的读写请求,适合处理实时数据。MongoDB具备自动分片(sharding)功能,能够将数据集分散存储在多个服务器上,从而提高数据读写能力和系统的...

    mongoDB可视化工具

    在管理和操作MongoDB数据库时,可视化工具起到了至关重要的作用,它能够帮助用户更直观地理解数据结构,执行查询,以及进行数据库管理。"mongoDB可视化工具"就是专为此目的设计的软件,提供了一个友好的图形用户界面...

    爬取链家二手房房价数据存入mongodb并进行分析

    5. **MongoDB**:MongoDB是一种NoSQL数据库,适合存储非结构化和半结构化数据。在这里,它将用于存储房价数据。Python有PyMongo库用于与MongoDB交互,包括连接数据库、创建集合(类似表)、插入数据、查询数据等操作...

    数据库mongodb操作辅助类,可操作集合,操作文件,可自定义文件存储桶

    1. 文档(Documents):MongoDB中的数据以JSON格式的文档存储,这种格式便于理解和处理结构化及半结构化数据。 2. 集合(Collections):类似于关系型数据库中的表,是文档的集合。每个集合可以包含任意数量的文档,...

    php Mongodb 操作类

    在PHP开发中,MongoDB是一个广泛使用的文档型数据库系统,尤其适合处理大量非结构化数据。这个"php Mongodb操作类"是专为在PHP环境中与MongoDB数据库进行交互而设计的工具,允许开发者轻松地执行创建(Create)、...

    MongoDB安装包+可视化工具

    MongoDB是一种流行的开源、分布式文档数据库,用于处理大量的结构化和非结构化数据。它以其灵活性、高性能和易用性而受到开发者的喜爱。在本压缩包中,包含MongoDB的安装包和一个可视化的图形用户界面(GUI)工具...

    最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip

    mongodb 数据库基本操作 1、mongoDB的介绍 mongoDB是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它介于关系数据库和非关系数据库之间,被认为是非...

    MongoDB在医院信息化应用中的探讨.rar

    MongoDB是一种流行的开源、分布式文档数据库系统,以其灵活性、可扩展性和高性能而受到广泛关注,尤其在处理非结构化和半结构化数据时表现突出。在医院信息化应用中,MongoDB可以发挥重要作用,解决传统关系型数据库...

    MongoDb数据结构详解.pdf

    MongoDB的设计允许快速的读写操作,特别适合处理大量非结构化或半结构化数据。其灵活的数据模型和分布式架构使其成为大数据处理和实时应用程序的理想选择。了解并熟练掌握这些基本数据结构和特性是理解和使用MongoDB...

    mongodb操作文档.doc

    总的来说,MongoDB 是一个强大的NoSQL数据库,适用于需要快速开发和处理大量非结构化或半结构化数据的应用场景。通过Python的pymongo库,可以方便地在Python程序中与MongoDB进行交互,实现高效的数据管理和分析。

    mongodb数据库可视化操作工具

    1. 数据浏览:可视化工具通常会展示数据库的结构,包括集合(等同于关系型数据库中的表)、文档(记录)和字段。用户可以通过树状视图或表格形式查看和筛选数据,无需编写复杂的查询语句。 2. 查询构建:这些工具...

    海量非结构化数据管理方案.docx

    【海量非结构化数据管理方案】的文档主要探讨了如何有效地管理和规划大数据环境下的非结构化数据,涉及存储选择、高可用架构以及处理工具的选型和调优等多个方面。 在设计思路上,针对非结构化数据的特性,如大规模...

    MongoDB可视化工具

    这两款工具都旨在提供更直观、更高效的MongoDB操作体验,帮助用户快速定位和解决问题,提升开发和运维效率。它们通过图形化的界面使得数据库管理任务变得更加简单,无论是在日常的查询、备份、性能优化,还是在故障...

Global site tag (gtag.js) - Google Analytics