gpt4 book ai didi

azure - 如何使用 cosmos db 中的 ArrayContains 方法检查字符串数组内的值?

转载 作者:行者123 更新时间:2023-12-02 07:57:59 26 4
gpt4 key购买 nike

我有以下 JSON,我想在 name="style"和属性包含 US - 矩形时获取此记录

{
"id": "5ede1c0f1b4b335ed3bf3bca",
"attributes": [
{
"name": "Style",
"properties": [
"US - Rectangle",
"US - Square"
]
},
{
"name": "Button Configuration",
"properties": [
"2 button"
]
},
{
"name": "Columns",
"properties": [
"Single Column"
]
},
{
"name": "Colors",
"properties": [
"Beige"
]
}
],

}

我已经写了这个查询

SELECT *
FROM c
where ARRAY_CONTAINS(c.attributes, {name:"Style"},true )

但无法理解如何包含属性值

最佳答案

这就是自连接发挥作用的地方:

对属性数组进行自连接,然后通过对属性执行 ARRAY_CONTAINS() 进行过滤。下面是一个发出文档 ID 以及包含属性“US - 矩形”的特定属性名称的示例:

SELECT c.id,a.name FROM c
JOIN a IN c.attributes
WHERE ARRAY_CONTAINS(a.properties,"US - Rectangle")

输出:

[
{
"id": "5ede1c0f1b4b335ed3bf3bca",
"name": "Style"
}
]

如果您想将搜索限制为仅查看一个特定属性,只需将其添加到 WHERE 子句中即可:

SELECT c.id, a.name FROM c
JOIN a IN c.attributes
WHERE a.name = "Style"
AND ARRAY_CONTAINS(a.properties,"US - Rectangle")

关于azure - 如何使用 cosmos db 中的 ArrayContains 方法检查字符串数组内的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62345840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com