【发布时间】:2020-09-08 12:25:12
【问题描述】:
Below 是我在 CosmosDB 中添加的 JSON 文件:
{
"A": [
"Uganda",
"Vietnam",
"Colombia",
"Guatemala",
"Paraguay",
"Afghanistan",
"India",
"Iran",
"Nepal",
"Pakistan"
],
"B": [
"Bricks",
"Bricks",
"Bricks",
"Broccoli",
"Cabbages",
"Carpets",
"Carpets",
"Carpets",
"Carpets",
"Carpets"
],
"C": [
"Child ",
"Child ",
"Child ",
"Child ",
"Child ",
"Child ",
"Child , Non Child",
"Child",
"Child , Non Child",
"Child , Non Child"
]
当我尝试以下查询时:
SELECT *from tbl f WHERE f.Country = 'Uganda'
我得到 0 个结果。我的印象是我的 JSON 中有多个值的单个键导致了问题。
如何处理这个 JSON?
【问题讨论】:
-
您的 JSON 没有任何名为
Country的属性。除此之外:看看ARRAY_CONTAINS()(这里有许多与在数组中搜索直接相关的问题和答案)。这应该会有所帮助... -
是的,大卫,我正在研究这些选项,但不知何故,我的印象是,我的 json 数据的存在方式可能存在问题,因为它无法填充任何数据。
-
你的 JSON 模式的问题是你有键(例如
"A"包含实际数据。也就是说:"A"代表什么?如果它是某物的价值,那么你真的应该考虑将您的架构重构为键:值(例如{ "someKey" : "A", someValues: [...] }。否则实际上无法在事先不知道它们的情况下枚举所有值 A、B、C 等。 -
如果你只做
SELECT * FROM c会得到什么?
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi