Nosql 嵌套集合中的Cosmos Db DateTime查询
我正在尝试对Cosmos DB中的嵌套集合执行一些基本的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"
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我是否误解了您的要求?感谢您的帮助,我对这个概念非常陌生,但您帮助填补了一些空白。非常感谢!