很抱歉,如果这是一个新手问题,但我是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: 2
有两个相同的项目。...id: 3
被排除,因为它只有一个项目
在普通的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)
请问如何停止复制
请注意,以上是手工制作的表示形式,用于简化问题,因为我实际上正在处理的文档模型非常大
答案 0 :(得分:1)
Cosmos DB现在支持DISTINCT关键字,它实际上可用于您的文档用例。