7.1 集合作为关系型表格

希望存储标准 SQL 列和文档的应用程序可以将集合转换为表格。在这种情况下,集合可以用 Schema.getCollectionAsTable() 函数获取为 Table 对象。从那时起,它将被视为普通表格。文档值可以使用以下语法在 SQL CRUD 操作中访问

doc->'$.field'

doc->'$.field' 用于访问文档顶层字段。也可以指定更复杂的路径。

doc->'$.some.field.like[3].this'

一旦集合通过 Schema.getCollectionAsTable() 函数获取为表格,就可以使用所有 SQL CRUD 操作。使用文档访问语法,您可以从集合的文档和额外的 SQL 列中选择数据。

以下示例展示了如何将 JSON 文档字符串插入 doc 字段。

// Get the customers collection as a table
var customers = db.getCollectionAsTable('customers');
customers.insert('doc').values('{"_id":"001", "name": "Ana", "last_name": "Silva"}').execute();

// Now do a find operation to retrieve the inserted document
var result = customers.select(["doc->'$.name'", "doc->'$.last_name'"]).where("doc->'$._id' = '001'").execute();

var record = result.fetchOne();

print ("Name : "  + record[0]);
print ("Last Name : "  + record[1]);