首页 > 数据库 >第六章 MongoDB数据库开发

第六章 MongoDB数据库开发

时间:2022-09-18 10:46:25浏览次数:112  
标签:MongoDB 数据库 组件 JSON 使用 第六章 Delphi

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页)

 

标签:MongoDB,数据库,组件,JSON,使用,第六章,Delphi
From: https://www.cnblogs.com/karkash/p/16704349.html

相关文章

  • 数据库备份差异备份和增量备份的区别
    一般都三种备份种类:完全备份、差异备份、增量备份。完全备份:备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个......
  • 名为WSS_Content_xxx 的 SharePoint 数据库已存在。您必须为该新数据库提供其他名称
    英文报错:ASharePointdatabasenamedWSS_Content_xxxalreadyexists. Youmustsupplyanothernameforthenewdatabase. 使用命令创建内容数据库,中途报错了Ne......
  • 天体数据库:数据准备(第 2 部分)
    天体数据库:数据准备(第2部分)Photoby泽维尔米兰达on不飞溅我需要使用PostgreSQL创建一个天体数据库这个freeCodeCamp项目.如果您对“天体”一词不熟悉,它指......
  • 数据库MySQL
    主要语句一、数据库--创建数据库CREATEDATABASEdemo;--删除数据库DROPDATABASEdemo;--查看数据库SHOWDATABASES;--创建数据表CREATETABLEdemo.test(字段名类......
  • Sql Server 查询数据库,所有表,列,类型
    1--查询所有表2selectSysobjects.NamefromSysObjects34--查询所有类型5selectSysTypes.NamefromSysTypes67--查询所有列8selectSy......
  • 异常和数据库事务的几个容易出错的地方
    https://blog.csdn.net/csdnsevenn/article/details/84645568?utm_source=tuicool&utm_medium=referral我们在开发企业应用时,由于数据操作在顺序执行的过程中,线上可能有各......
  • MySQL教程 - 优化数据库
    更新记录转载请注明出处。2022年9月10日发布。2022年9月10日从笔记迁移到博客。优化数据库查看用户使用情况SHOWPROCESSLIST;杀连接进程killuserId;......
  • 数据库原理:数据模型和关系数据库
    目录数据模型数据模型的分类数据模型的组成要素常用的数据模型层次模型网状结构关系模型关系模型概念笛卡尔积码的概念关系的概念关系模式关系操作关系完整性实体完整性参......
  • mongodb 基本概念
    文档是mongodb的最小数据集单位,是多个键值对有序租户在一起的数据单元,类似于关系型数据库的记录集合一组文档的集合,文档存放的是数据,集合内的结构是可以不同的,集......
  • 将Oracle数据库迁移到达梦数据库
    公司某产品在项目现场上常用到的数据库为Oracle和达梦。做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间、精力。故完成Oracle数据库的性能测试......