与 DocDb 的查询结果格式差异

Differences in query result format from DocDb

我正在用 C# 包装对 DocDB 集合的访问 class,并且在映射更高级的查询时遇到了一些痛苦。在尝试使用查询资源管理器进行调试时,我注意到 json returned:

中的一些差异
select * from collection

将return

[{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}]

select c from collection c

将return

[{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}}]

请注意结果是如何嵌套在 "c" 属性!

下方的

当我需要创建使用命名选择的查询并将 C# 库映射结果返回类型时,这种差异似乎会导致问题。这种查询的一个例子是

select c from collection c join n in c.names WHERE n.name = "first"

此查询必须使用 'c' 进行选择(不允许 *),以便内部映射 return 的结果数正确,但每个 returned 项目未映射(可能是因为它期望 json 属性位于最顶层而不是 "c" 属性 之下)。

有谁知道我如何获取 DocumentQuery C# api(来自 nuget 版本 1.5.3)以了解要映射的结果嵌套在命名结果下方 属性?

SELECT clause 下阅读后,我发现 VALUE 关键字只是 returns json 这让 C# 驱动程序再次开心。

所以我的查询最终应该是

select value c from collection c join n in c.names WHERE n.name = "first"