сгруппировать данные по одной и той же отметке времени, используя космос db sql - PullRequest
0 голосов
/ 06 апреля 2020

Вопрос. Я пытаюсь выполнить запрос SQL, как показано на рисунке ниже. Want Я хочу, чтобы он был сгруппирован по той же отметке времени enter image description here

ожидаемый результат:

[  
   {
      "tag1": {
        "TagName": "PV1-input-power-L(10W)",
        "Value": 0
       },
       "tag2": {
        "TagName": "Sunshine-Display-Value",
        "Value": 0
       },
       "tag3": {
        "TagName": "TotalEnergy-(100kWh)_1",
        "Value": 0
       },
      "timestamp": "2020-03-27T02:40:18Z"
    }
 ]

образец документа:

document structure

tag

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете использовать пользовательские функции.

Вот данные из моих контейнеров My Data in Cosmos

Вот функция, которую я создал. Я назвал его CustomArray.

function userDefinedFunction(input){
var obj={};
input.forEach(function(element,index){ 
obj["tag"+index] = {
    TagName :element.TagName,
    Value: element.Value
};
}); return obj;}

Здесь я запускаю UDF со своим оператором выбора enter image description here

Он возвращает следующие данные.

enter image description here

Схема очень близка к тому, что вы ищете. Я думаю, что вы можете сделать это лучше, изменив некоторые JScript в UDF. Надеюсь, это поможет!

...