Azure cosmosdb 与DocDb的查询结果格式不同

Azure cosmosdb 与DocDb的查询结果格式不同,azure-cosmosdb,Azure Cosmosdb,我正在C#类中包装对DocDB集合的访问,在映射更高级的查询时遇到了一些麻烦。在尝试使用查询资源管理器进行调试时,我注意到返回的json中存在一些差异: select * from collection 会回来的 [{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}] [{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "secon

我正在C#类中包装对DocDB集合的访问,在映射更高级的查询时遇到了一些麻烦。在尝试使用查询资源管理器进行调试时,我注意到返回的json中存在一些差异:

select * from collection
会回来的

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

会回来的

[{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}]
[{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}}]
请注意结果是如何嵌套在“c”属性下面的

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

select c from collection c join n in c.names WHERE n.name = "first"
此查询必须使用“c”进行选择(*不允许),因此内部映射返回正确数量的结果,但未映射每个返回项(可能是因为它希望json属性位于最顶层,而不是位于“c”属性之下)

有人知道我如何获得DocumentQuery C#api(来自nuget版本1.5.3)来理解要映射的结果嵌套在命名结果属性下吗?

阅读后,我找到了VALUE关键字,该关键字只返回json,使C#驱动程序再次感到高兴

所以我的问题应该以阅读结束

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