如果JOINED属性不存在,DocumentDb JOIN不返回结果

时间:2016-02-16 20:16:37

标签: azure-cosmosdb

我的用户典型文档如下所示:

{
   "id": "SomeGuid",
   "firstName": "John",
   "lastName": "Smith",
   "pet": { "id": "anotherGuid", "name": "Fluffy" }
}

如果用户没有宠物,我甚至不会在DocumentDb中保存pet属性,因此用户文档将如下所示:

{
   "id": "Guid123",
   "firstName": "Jane",
   "lastName": "Doe"
}

我想获得一个用户名单以及他们的宠物名称,所以这是我的SQL:

SELECT c.id, c.firstName, c.lastName, p.name
FROM c
JOIN p IN c.pet

此SELECT不返回任何数据。如果我删除JOIN并仅获取用户信息,则可以正常工作。

如何获得所有用户?如果他们有宠物,我应该得到宠物的名字,如果没有,没有宠物的名字。使用我的示例,我想得到一个如下所示的列表:

[
   { "id": "SomeGuid", "firstName": "John", "lastName": "Smith", "name": "Fluffy" },
   { "id": "Guid123", "firstName": "Jane", "lastName": "Doe" }
]

1 个答案:

答案 0 :(得分:0)

我没有使用JOIN就能达到我的目的。

这是我的SELECT,它给了我我想要的东西:

SELECT c.id, c.firstName, c.lastName, c.pet.name
FROM c

我得到的结果正是我想要的结果:

[
   { "id": "SomeGuid", "firstName": "John", "lastName": "Smith", "name": "Fluffy" },
   { "id": "Guid123", "firstName": "Jane", "lastName": "Doe" }
]