如何在 DocumentDb 中获取两个文档数组的用户定义属性

how to fetch two document array's user defined properties in DocumentDb

我的第一个文档包含以下属性

{  
  "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、附件和所有)。

为了获取用户定义的数据,我使用了以下查询。

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 

但结果是 returns 空数组。我如何更改查询以获得所需的结果?

我认为您误解了 JOIN 操作。在 Cosmos DB 中,它用于文档内连接,例如将文档属性中的数据组合到同一文档中子数组的字段中。您不能使用 join 合并两个文档。

最简单的方法就是一直查询所有字段,然后在代码中合并非空字段。

如果你真的需要在数据库中以这种方式合并两个文档,你可以编写一个用户定义的函数,它会通过 ID 查询两个文档,然后将它们合并。