第六章 MongoDB数据库开发

FireDAC也在DX10的版本中开始加入 支持NoSQL型态的数据库 ,并选择其中最为流行的MongoDB为第1个支持的目标。

  • MongoDB 的数据体结构是以  (Key,Value)组合的,储存的方式是使用JSON格式,不过为了执行速度考虑,在内部处理上的格上是使用BSON。所谓BSON指的是BinaryJSON的意思

 

传统数据库对象与 MongoDB 中的对应关系

MongoDB 较重要的特点:  

  1.  MongoDB可以处理数据库为T级量的数据库,也就是处理 大数据的数据库 
  2.  分布式的数据库模式,可以把众多数据库串联后处理大数的数据。
  3.  MongoDB可直接储存对象,每个字段也可以储存对象
  4.  Monogo基本上是使用JavaScript和JSON的数据库

如: MongoDB 的 JSON对象 其中包含了4个 JSON Pair , "_id”字段是由MongoDB自行产生的键值

        JSON新增另一Document,而且新增了一个email字段,这个email字段则是一个JSON数组对象

  

 

  • 6-2下载和安装MongoDB   (197页)
    • use MyDemoMongoDB          建立或打开一个数据表名为 MyDemoMongoDB
    • MyDemoMongoDB 建立一个 employee 数据表

      db.employee.insert({"name":"李大明","account":"LTM","country":"tw", "age":36})
  • 在DX10中FireDAC加入了支持MongoDB的功能,

让Delphi的开发人员可以同时使用MongoDB的API或是FireDAC组件来管理和处理MongoDB

  • 6-3FireDAC对MongoDB的支援  

        Delphi类别来呼叫 MongoDB API 来管理和处理MongoDB,或是使使用  FireDAC 的MongoDB组件

  • 由于MongoDB使用JSON/BSON来处理和封装数据,因此读者也必须了解DX10中的新JSON框架,例如TJsonReader,TJsonWriter和 TJSONCollectionBuilder  等类别
  • FireDAC也封装了下面的组件帮助Delphi开发人员使用TDataSet的观念和  技术来使用MongoDB:

  • 6-3-1使用Delphi类别处理MongoDB

 

 

请注意  Collections 特性接受2个索引参数,一个就是数据库名称,另外一个就是  Collection名称,

如果使用数据库名称和Collection名称存取Collections特性时 在MongoDB中此时没有此数据库名称和Collection名称,那么MongoDB就会自动帮我们建立此数据库和Collection名称 非常的方便

实例

首先建立一个VCLApplication(FireMonkeyApplication也可以),在主窗体中加  TFDConnection,TFDPhysMongoDriverLink 和TFDGUIxWaitCursor组件,再设定TFDConnection 组件的DriverName特性为Mongo,如下所示:

      1. 

CreateDBAndColection 方法只需要使用  FireDACDemoDB  数据库名称和‘FireDACColletions’  Colletions  名称那么 MongDB 就会自动帮我们建立  FireDACDemoDB 数据库和 FireDACColletions  Collection 而RemoveAll()方法 是先把 FireDACColletions 中所有的Documents 删除以便开始新增 Document

InsertDemoData 方法

呼叫 InsertDocument 方法取得新增了数据的 TMongoDocument 对象

再呼叫TMongoCollection 对象的Insert 方法把  TMongoDocument对象 加入到TMongoCollection对象中以便把Document对象写入  ColLection 中:

InsertDocument 方法

先呼叫 TMongoEnv 的 NewDoc 方法建立  TMongoDocument对象,再使用类似TJsonObejectBuilder(请参考"Delphi开发手册”)  的方式新增JSON型态的数据

  最后的ShowDocuments方法是由 IMongoCursor接口 一 一 的显示  Collection中所有的Document.

  • 使用FireDAC 组件处理MongoDB

为了让Delphi程序员避免自己学习和呼叫复杂的MongoDB API,因此DX10的FireDAC提供了TFDMongoQuery和TFDMongoDataSet等TDataSet组件封装了许多MongoDB API 的功能让Delphi程序员以熟悉的方式来使用MongoDB,如此一来可以减少许多的开发时间

  • 要使用 TFDMongoQuery组件,程序员需要设定TFDMongoQuery 组件下面的3个特性值:

接着在主窗体加入一个“搜寻数据”按钮,于它的Onclick事件中使用我们已熟悉的  Close() 和Open() 方法执行查询。

但请注意的 是TMongoQuery不使用SQL语法查询数  而是使用JSON语法查询数据。因此要查询数据我们需要把查询的JSON指定给  TMongoQuery组件的QMatch特性

  • 6-3-3 使用TMongoQuery 搜寻数据  ( 第 211  开始 ~ 215页)

 

posted @ 2022-09-18 10:34  麦麦提敏  阅读(263)  评论(0编辑  收藏  举报