Извините, если это вопрос новичка, но я новичок в Cosmos DB.
Я пытаюсь выбрать все корневые документы из моей коллекции, где дочерний элемент соответствует указанным (нескольким) критериям.
Предположим, у вас есть документ ORDER, который содержит ORDERITEMS в качестве документа дополнительных данных. Мне нужно запросить все заказы, в которых был заказан конкретный продукт, и вернуть весь документ заказа.
[
{
"order": {
"id": "1",
"orderiems": [
{
"partcode": "A",
"qty": "4"
},
{
"partcode": "B",
"qty": "4"
},
{
"partcode": "C",
"qty": "4"
}
]
}
},
{
"order": {
"id": "2",
"orderiems": [
{
"partcode": "A",
"qty": "4"
},
{
"partcode": "B",
"qty": "4"
},
{
"partcode": "A",
"qty": "4"
}
]
}
},
{
"order": {
"id": "3",
"orderiems": [
{
"partcode": "A",
"qty": "1"
}
]
}
}
]
Мой запрос
SELECT order from order
JOIN items in order.orderitem
WHERE item.partcode = '<mypartcode>
AND item.qty > 1
Сейчас этот вид работает и возвращает мне заказы, но он возвращается
- id: 1
- id: 2
- id: 2 ‹---------------- повторяется
потому что id: 2
имеет два одинаковых элемента .... id: 3
исключено, потому что это только 1 элемент
В обычном SQL Server SQL я бы просто
SELECT *
from Orders o
where exists (select 1
from OrderItems oi
where oi.ordID = o.ID
and oi.partcode = 'A'
and oi.qty > 1)
Как мне остановить дублирование, пожалуйста
Обратите внимание, что приведенное выше изображение является созданным вручную, чтобы упростить задачу, поскольку модель документа, над которой я работаю, очень большая