我曾尝试在 Microsoft Commos DB 中执行以下 NoSQL 语句,但没有成功

I have tried executing the following NoSQL statement in Microsoft Commos DB but it didn't work

这里是开发环境:SpringBoot,Microsoft Azure Cosmos DB,Java等。

SQL是:

SELECT * FROM A WHERE A.UnitNumber = "FN8KB1H" AND A.reportTime =
  (SELECT MAX(A.reportTime) FROM A WHERE A.UnitNumber = "FN8KB1H")

当我运行这个SQL时,它确实无一例外地执行了return,但什么也没有,就像这个“[]”。预期的 return 值是一个项目,像这样:

{"id":1, "UnitNumber": "FN8KB1H", "reportTime": "1234567890"}

官方文档太难understand.What 我知道是"It does not support uncorrelated subqueries"。我怎样才能 select 预期的 return 值?

SELECT * FROM A WHERE A.UnitNumber = "FN8KB1H" AND A.reportTime =
(SELECT MAX(A.reportTime) FROM A WHERE A.UnitNumber = "FN8KB1H")

CosmosDB 查询不支持不相关的子查询,子查询只能引用父集合中的项目。例如:

SELECT TOP 10 
    c.id, 
    MaxNutritionValue
FROM c
JOIN (SELECT VALUE Max(n.nutritionValue) FROM n IN c.nutrients) MaxNutritionValue

返回您的要求,请尝试以下sql:

SELECT TOP 1 c.id,c.UnitNumber FROM c where c.UnitNumber = "FN8KB1H" ORDER BY c.reportTime DESC