Autonomous Database 上的 SODA 收集元数据

介绍 Autonomous Database 上的默认和定制收集元数据。

Autonomous Database 上的 SODA 默认收集元数据

介绍 Autonomous Database 上的默认收集元数据,即未提供定制元数据时添加的收集的元数据。

每个 SODA 实施都提供了在您提供集合名称时创建默认集合的方法。例如,在 SODA for Java 中,您可以使用 createCollection 方法并仅提供集合名称参数:

db.admin().createCollection("myCol");

这将创建包含默认集合元数据的集合。在 Autonomous Database 上创建默认集合时,集合元数据包括以下信息(无论您使用哪个 SODA 实施创建默认集合):

{
   "keyColumn" :
   {
      "name" : "ID",
      "sqlType" : "VARCHAR2",
      "maxLength" : 255,
      "assignmentMethod" : "UUID"
   },

   "contentColumn" :
   {
      "name" : "JSON_DOCUMENT",
      "sqlType" : "BLOB",
      "jsonFormat" : "OSON"
   },
   "versionColumn" :
   {
     "name" : "VERSION",
     "method" : "UUID"
   },
   
   "lastModifiedColumn" :
   {
     "name" : "LAST_MODIFIED"
   },
   
   "creationTimeColumn" :
   {
      "name" : "CREATED_ON"
   },
   
   "readOnly" : false
}

Autonomous Database 上的 SODA 定制收集元数据

介绍 Autonomous Database 上的 SODA 收集定制元数据。

每个 SODA 实施都提供了在创建收集期间定制收集元数据的方法。例如,在适用于 Java 的 SODA 中,您可以使用以下命令:

OracleDocument metadata = db.createDocumentFromString("metadata_string");
OracleCollection col = db.admin().createCollection("myCustomColl", metadata);

在此示例中,对于 metadata_string,可以使用默认元数据作为起点,并定制以下内容:

  • keyColumn.assignmentMethod 更改为 CLIENT:将元数据中 keyColumn 下的 assignmentMethod 的值更改为 CLIENT(而不是 UUID)。

    Autonomous DatabasekeyColumn.assignmentMethod 的有效值:

    • UUID (默认值):密钥由 SODA 根据 UUID 生成。

    • CLIENT :密钥由客户机应用程序指定。

  • 提供 mediaTypeColumn name 值:如果集合是异构的,则需要介质类型列,即可以存储 JavaScript 对象表示法 (JSON) 以外的文档。有关详细信息,请参见 Media Type Column Name

以下示例指定客户机分配的密钥和定制介质类型列。使用值 YOUR_MEDIA_TYPE_COLUMN_NAME 指定 mediaTypeColumn name。否则,使用默认设置。

{
   "keyColumn" :
   {
      "name" : "ID",
      "sqlType" : "VARCHAR2",
      "maxLength" : 255,
      "assignmentMethod" : "CLIENT"
   },
   
   "contentColumn" :
   {
      "name" : "JSON_DOCUMENT",
      "sqlType" : "BLOB"
   },

   "versionColumn" :
   {
     "name" : "VERSION",
     "method" : "UUID"
   },

   "lastModifiedColumn" :
   {
     "name" : "LAST_MODIFIED"
   },

   "creationTimeColumn" :
   {
      "name" : "CREATED_ON"
   },

   "mediaTypeColumn" :
   {
      "name" : "YOUR_MEDIA_TYPE_COLUMN_NAME"
   },

   "readOnly" : false
}