Sql Azure Cosmos DB可以进行这种查询吗?

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

我在Azure Cosmos DB中存储了一个JSON对象,我正在研究是否有一种方法可以编写可行的查询,执行基本操作,如按顺序排序

结构类似于:

[ 
   { 
      "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)