存在空数组(如 [null] 对象)的 Cosmos DB 查询
Cosmos DB query for null array like [null] object is present
我需要从 CosmosDB 查询具有空数据数组(如 [null])的项目。
我试过这样的查询 SELECT TOP 1 c.id from c where ARRAY_CONTAINS(c.data1, [[null]], true ).我的意图是查询这样的东西。
SELECT 来自 c 的前 1 c.id 其中 ARRAY_CONTAINS(c.data1, [[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
}`;
How data looks
我想我明白你的意思了。让我们说,你的数据可能是这样的:
{
"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
}
]
}
]
]
}
数据数组有元素是整个空数组:
或者有元素包含空值和其他值。
如果是这样,您可以在 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)
输出:
我需要从 CosmosDB 查询具有空数据数组(如 [null])的项目。
我试过这样的查询 SELECT TOP 1 c.id from c where ARRAY_CONTAINS(c.data1, [[null]], true ).我的意图是查询这样的东西。
SELECT 来自 c 的前 1 c.id 其中 ARRAY_CONTAINS(c.data1, [[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
}`;
How data looks
我想我明白你的意思了。让我们说,你的数据可能是这样的:
{
"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
}
]
}
]
]
}
数据数组有元素是整个空数组:
或者有元素包含空值和其他值。
如果是这样,您可以在 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)
输出: