X DevAPI 用户指南  / 第 7 章 使用关系表和文档  /  7.1 集合作为关系表

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
customers = db.get_collection_as_table('customers')
customers.insert('doc').values('{"_id":"001", "name": "Ana", "last_name": "Silva"}').execute()

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

record = result.fetch_one()

print("Name : %s\n"  % record[0])
print("Last Name : %s\n"  % record[1])