我的第一份文件包含以下属性
{
"id":"123456789",
"sensordata1":[
{
"Time":"8:16:19",
"Temperature":27.9,
"Humidity":96.5,
"Voltage":0.03,
"Current":0.5
}]
我的第二份文件包含以下属性
{
"id":"987654321",
"sensordata2":
{
"Time":"8:17:14",
"Temperature":31.7,
"Humidity":81.2,
"Voltage":1.44,
"Current":0.25
}]
我想要两个文档用户定义的属性,但不想要系统定义的属性(如etags,attachment和all)。
对于获取用户定义数据,我使用了以下查询。
select e.Time,
e.Temperature,
e.Humidity,
e.Voltage,
e.Current,
g.Time,
g.Temperature,
g.Humidity,
g.Voltage
from Items f
join e in f.sensordata1 join g in s.sensordata2
但它返回空数组作为结果。如何更改查询以获得所需结果?
答案 0 :(得分:0)
我认为你误解了JOIN
操作。在Cosmos DB中,它用于文档内连接,例如,将文档属性中的数据组合到同一文档中的子数组字段。您无法使用联接来合并两个文档。
最简单的方法就是始终查询所有字段,然后在代码中组合非空字段。
如果你真的需要在数据库中以这种方式组合两个文档,你可以编写一个用户定义的函数,它将通过ID查询两个文档,然后将它们组合起来。