#azure-cosmosdb #azure-cosmosdb-sqlapi
#azure-cosmosdb #azure-cosmosdb-sqlapi
Вопрос:
У меня есть список устройств в документах cosmos DB (тысячи), марка и SerialNumber — это уникальный идентификатор для каждого ресурса.
[{
"make": "CAT",
"serial": "A1",
"NAME": "CAR"
},
{
"make": "ZAT",
"serial": "B1",
"NAME": "BUS"
}, {
"make": "CAT",
"serial": "C1",
"NAME": "TRUCK"
}, {
"make": "ABC",
"serial": "A1",
"NAME": "Plane"
}, {
"make": "ZAT",
"serial": "A1",
"NAME": "BIKE"
}
]
Мне нужно получить полную информацию об активе из вышеуказанных документов на основе приведенных ниже данных устройства ввода.
[{
"make": "CAT",
"serial": "A1"
},
{
"make": "ZAT",
"serial": "B1"
}, {
"make": "CAT",
"serial": "C1"
}
]
Я использую приведенный ниже запрос для получения полной информации (я знаю, что приведенный ниже запрос неверен). В общем, я получаю передачу 100 последовательных устройств в одном запросе.
select * from t where serial in (A1,B1,C1) and make in (CAT,ZAT,CAT)
Есть ли какой-либо способ записать В запросе комбинацию из двух полей?
Ожидаемый результат
A1 CAT
B1 ZAT
C1 CAT
Ответ №1:
Панкадж Рават, пожалуйста, используйте этот запрос sql, он может соответствовать вашим требованиям.
SELECT c FROM c where
ARRAY_CONTAINS([
{"serialNumber":"A1","make":"CAT"},
{"serialNumber":"B1","make":"ZAT"},
{"serialNumber":"C1","make":"CAT"}
],
{"serialNumber": c.serialNumber,
"make":c.make}
)
Вывод: