我需要从CosmosDB中查询具有空数据数组(例如[null])的项。
我尝试了类似这样的查询:SELECT TOP 1 c.id from c where ARRAY_CONTAINS(c.data 1,[[null]],true)。我的意图是查询类似这样的内容。
从c中选择TOP 1 c.id,其中ARRAY_CONTAINS(c.data 1,[[null]],true)
上述查询没有返回结果。
var sampledata = `{
"id": 48259,
"data": [
[
{
"Elements": [
{
"QS": "",
"TypeC": "C",
"Id": 378,
"R": false,
"KTime": "0",
"AllKVal": "",
"KVal": "2",
"IsGreen": false
}
]
}
],
[
null,
{
"Elements": [
{
"QS": "",
"TypeC": "CM",
"Id": 243,
"R": "",
"KTime": "0",
"AllKVal": "",
"V": true,
"KVal": "2",
"IsGreen": false
}
]
}
]
],
"_ts": 1560943024
}`;
答案 0 :(得分:0)
我想我明白你的意思。让我们说,您的数据可能是这样的:
{
"id": "48259",
"data": [
[
{
"Elements": [
{
"QS": "",
"TypeC": "C",
"Id": 378,
"R": false,
"KTime": "0",
"AllKVal": "",
"KVal": "2",
"IsGreen": false
}
]
}
],
[
null
],
[
null,
{
"Elements": [
{
"QS": "",
"TypeC": "CM",
"Id": 243,
"R": "",
"KTime": "0",
"AllKVal": "",
"V": true,
"KVal": "2",
"IsGreen": false
}
]
}
]
]
}
数据数组的元素为整个空数组:
或has元素包含空值和其他值。
如果是这样,您可以在SQL中使用join来处理它们两者。
SELECT distinct c.id from c
join data in c.data
where ARRAY_CONTAINS(c.data,[null],true)
or ARRAY_CONTAINS(data,[null],true)
输出: