第二章 文档数据库 (DocDB) 简介 - JSON结构

文章目录

  • 第二章 文档数据库 (DocDB) 简介 - JSON结构
  • `JSON`结构
  • 文档

第二章 文档数据库 (DocDB) 简介 - JSON结构

JSON结构

IRIS 文档数据库支持 JSON 动态对象和 JSON 动态数组。可以使用 SET 命令创建这些 JSON 结构。

以下示例展示了如何使用 JSON 存储分层数据。第一个 SET 创建一个动态抽象对象,其中包含嵌套的 JSON 结构的键:值对和数组。然后,该示例将动态抽象对象转换为 JSON 字符串,然后将该 JSON 字符串作为文档插入到现有文档数据库中。

  SET dynAbObj = {
   "FullName":"John Smith",
   "FirstName":"John",
   "Address":{
              "street":"101 Main Street",
              "city":"Mapleville",
              "state":"NY",
              "postal code":10234
             },
   "PhoneNumber":
              [
               {"type":"home","number":"212-456-9876"},
               {"type":"cell","number":"401-123-4567"},
               {"type":"work","number":"212-444-5000"}
              ]
  }
  SET jstring = dynAbObj.%ToJSON() // dynamic abstract object to JSON string
  DO personDB.%FromJSON(jstring)   // JSON string inserted into document database

在此示例中,FullName 存储为简单的键:值对。地址有一个子结构,它存储为由键:值对组成的对象。 PhoneNumber 有一个存储为数组的子结构。

文档

文档存储在创建的数据库类实例的属性中的 %Doc 中。下面的示例显示了这一点,该示例将 JSON 数组存储在 %Doc 属性中:

   SET jarry = ["Anne","Bradford","Charles","Deborah"]
   SET myoref = ##class(MyDBs.DB1).%New()
   SET myoref.%Doc = jarry
   SET docoref = myoref.%Doc
   WRITE "%Doc property oref: ",docoref,!
   WRITE "%Doc Property value: ",docoref.%ToJSON()

默认情况下,%Doc 数据类型为 %Library.DynamicAbstractObject,这是用于存储 JSON 对象或 JSON 数组的数据类型。可以在 %CreateDatabase()方法中指定不同的数据类型。

其他数据库属性:

  • %DocumentId是一个 IDENTITY 属性,包含标识文档的唯一整数; %DocumentId1 开始计数。在大多数情况下,%DocumentId 值是系统分配的。 %DocumentId 必须是唯一的; %DocumentIds 不一定按顺序分配;分配序列中可能会出现间隙。文档数据库还会自动为 %DocumentId 值生成 IdKey 索引。
  • %LastModified 记录定义文档实例时的 UTC 时间戳。

你可能感兴趣的:(文档数据库,数据库,json,oracle)