Sql Azure Cosmos DB可以进行这种查询吗?
我在Azure Cosmos DB中存储了一个JSON对象,我正在研究是否有一种方法可以编写可行的查询,执行基本操作,如按顺序排序 结构类似于:Sql Azure Cosmos DB可以进行这种查询吗?,sql,database,azure,cosmos,Sql,Database,Azure,Cosmos,我在Azure Cosmos DB中存储了一个JSON对象,我正在研究是否有一种方法可以编写可行的查询,执行基本操作,如按顺序排序 结构类似于: [ { "id":"id1", "title":"test title", "dataRecord":{ "version":1, "dataRecordItems":[ { "itemTitle":"item
[
{
"id":"id1",
"title":"test title",
"dataRecord":{
"version":1,
"dataRecordItems":[
{
"itemTitle":"item title 1",
"type":"string",
"value":"My First Title"
},
{
"itemTitle":"item number",
"type":"number",
"value":1
},
{
"itemTitle":"date",
"type":"date",
"value":"21/11/2019 00:00:00"
}
]
}
},
{
"id":"id2",
"title":"test title again",
"dataRecord":{
"version":1,
"dataRecordItems":[
{
"itemTitle":"item title 2",
"type":"string",
"value":"My Second Title"
},
{
"itemTitle":"item number",
"type":"number",
"value":2
},
{
"itemTitle":"date",
"type":"date",
"value":"20/11/2019 00:00:00"
}
]
}
]
我可以使用ARRAY_CONTAINS查找具有特定值的对象,但是如果我尝试按标题为“date”的对象的值排序,我会遇到各种问题
因此,作为一个例子,我想说(这里是伪代码):
从c中选择*,其中
数组_包含(c.dataRecord.dataRecordItems,
{“项目标题”:“项目标题2”,“值”:“我的第二个标题”},true)
及
数组_包含(c.dataRecord.dataRecordItems,{“itemTitle”:“item number”,“value”:2},true)
ORDER BY<***以某种方式从itemTitle=DATE获取此处的日期***
然后,在这个简单的例子中,我会把所有东西都退回,但按日期排序
很明显,在未来,我会从各个领域撤出,但如果我不能完成第一部分,这一切都是毫无意义的
只是想知道是否有人有什么好主意
干杯 您需要以ISO 8601格式存储日期:
Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
Complete date plus hours, minutes, seconds and a decimal fraction of a
second
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
where:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
TZD = time zone designator (Z or +hh:mm or -hh:mm)
您好,您能发布您当前的sql和所需的输出吗?谢谢您的关注。我更新了这个问题,试图让它更清楚。
Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
Complete date plus hours, minutes, seconds and a decimal fraction of a
second
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
where:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
TZD = time zone designator (Z or +hh:mm or -hh:mm)