Извините, если это вопрос новичка, но я новичок в базе данных Cosmos.
Я пытаюсь выбрать все корневые документы из моей коллекции, где дочерний элемент соответствует заданным (множественным) критериям.
Предположим, что у вас есть документ 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 << <strong>повторяется
, поскольку 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)
Как мне остановить дублирование, пожалуйста,
Обратите вниманиечто вышеупомянутое является представлением, сделанным вручную, чтобы упростить проблему как модель документа.работает на очень большой