Nosql 嵌套集合中的Cosmos Db DateTime查询

Nosql 嵌套集合中的Cosmos Db DateTime查询,nosql,azure-cosmosdb,Nosql,Azure Cosmosdb,我正在尝试对Cosmos DB中的嵌套集合执行一些基本的DateTime操作 以下是文档结构的示例: { "id": "9a8b63d1-0b35-477a-9eee-f44bd41cbbcc", "Name": "Some Name", "StoredReports": [ { "Name": "Test 1234", "CreatedOn": "2019-07-24T07:26:51.2395361Z"

我正在尝试对Cosmos DB中的嵌套集合执行一些基本的
DateTime
操作

以下是文档结构的示例:

{
    "id": "9a8b63d1-0b35-477a-9eee-f44bd41cbbcc",
    "Name": "Some Name",
    "StoredReports": [
        {
            "Name": "Test 1234",
            "CreatedOn": "2019-07-24T07:26:51.2395361Z"
        },
        {
            "Name": "Test 1234",
            "CreatedOn": "2019-07-29T07:26:51.2395361Z"
        }
    ]
}
我试图做的只是在
StoredReport.CreatedOn
字段上执行一些基本操作

以下是一个例子:

从c中选择*c.StoredReport.CreatedOn>'2019-07-25T07:26:51.2395361Z'


但这不返回任何记录,我希望它返回文档,但只有1个
StoredReport
,我假设我没有正确地查询它,因为它是一个嵌套集合。

首先,您的文档包含
StoredReport
属性和sql查询
StoredReport
列。它们不匹配

然后,
StoredReports
是一个数组,因此需要使用
EXISTS
来查询嵌套文档

SELECT * 
FROM c
WHERE EXISTS (
    SELECT VALUE s 
    FROM s IN c.StoredReports 
    WHERE s.CreatedOn > '2019-07-25T07:26:51.2395361Z'
 ) 

请参阅以了解更多的退绕选项。

啊,好的,这似乎是我缺少的一点信息。返回不同的数据结构(如预期的)。但是有没有可能让它像原始文档一样返回JSON(好像我在过滤
StoredReport
数组)?如果你明白我的意思mean@JamieRees当然,请使用:
SELECT c.id、c.Name、c.StoredReports FROM c join s in c.StoredReports WHERE s.CreatedOn>'2019-07-25T07:26:51.2395361Z'
@JamieRees因为您使用了join,所以不能使用SELECT*FROM c。但是,您可以定义要筛选的每个列,例如:
从c中选择c.a1、c.a2、c.a3……
@JamieRees我是否误解了您的要求?感谢您的帮助,我对这个概念非常陌生,但您帮助填补了一些空白。非常感谢!