当前位置: 首页 > 知识库问答 >
问题:

Azure Cosmos SQL-使用嵌套数组并使用LIKE关键字

郦昆
2023-03-14

有一段时间,当我必须按特定值查找数组的特定元素时,我一直使用ARRAY_CONTAINS函数。现在我有了带有嵌套数组的文档,在这些文档中,我必须使用regex搜索特定值,而不是搜索特定值。

{
  "id": "AndersenFamily",
  "lastName": "Andersen",
  "parents": [
     { "firstName": "Thomas" },
     { "firstName": "Mary Kay"}
  ],
  "children": [
     {
         "firstName": "Henriette Thaulow",
         "gender": "female",
         "grade": 5,
         "pets": [{ "givenName": "Fluffy" }]
     }
  ],
  "address": { "state": "WA", "county": "King", "city": "Seattle" },
  "creationDate": 1431620472,
  "isRegistered": true
}

构建什么SQL查询来实现它?

共有1个答案

徐茂材
2023-03-14

下面是一个查询,它使用联接将内部pets数组扁平化并应用筛选器,然后返回整个匹配的族项:

SELECT VALUE f
FROM Families f
JOIN c IN f.children
JOIN p IN c.pets
WHERE p.givenName LIKE "%Fluf%"

解决此类查询的复杂性是我认为值得考虑将数据建模为尽可能平坦的原因之一,例如,包括将其规范化为具有单独的pets项,这些项可以使用直接属性筛选器进行查询,而无需处理嵌套。根据您的目标,将所有内容结合到一个大型家族对象中并不一定是一个好主意。

 类似资料:
  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太

  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表明我应该使用像结构这样的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就

  • 如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段:

  • 我无法将以下格式的json数据解组为结构。json的结构对我来说看起来有点混乱,所以为我为散集它所做的所有愚蠢的事情道歉。 我试图使用下面的结构来解组它。 字段在生成时将是未知的,并且会发生变化,并且有这个字段 就在服务器名称后面,它的外部没有密钥,这再次让我感到困惑。我尝试了大量的组合,以了解这是如何解组的,但我失败了。 将 json 字段解封组到结构中的工作方法是什么?

  • 抱歉长帖,提前感谢! 在我的JAXB中(代码如下),我有一组值集,其中内部集被包装成一个容器类。所以,我有一组值容器,其中一个值是一个泛型类。问题:除非选择的泛型类是硬编码的,否则值不会得到解析。 关于XML的说明: >

  • 问题内容: 我正在努力从格式如下的JSON文件中检索一些值: 我尝试了不同的方法(json,gson,jayway- JsonPath),但是我无法从“属性”数组中获取值,只能从第一个数组中获取值。我不知道如何指定“属性”是一个JSONArray而不是一个JSONObject或如何为其设置正确的路径。这是我正在玩的最后一个代码,当它找到一个数组时停止: 我想做的就是获得卢卡斯或布兰登的价值。任何帮