首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka镜头SQL -如何基于嵌套在数组中的对象的过滤器

Kafka镜头SQL -如何基于嵌套在数组中的对象的过滤器
EN

Stack Overflow用户
提问于 2022-04-06 23:50:10
回答 1查看 859关注 0票数 1

我的工作是卡夫卡镜头v2.2.2。我需要基于数组中对象的值进行筛选。

示例消息(为简化而编辑):

代码语言:javascript
运行
复制
{
        "payload": {
            "Data": {
                "something" : "stuff"
             },

            "foo": {
                "bar": [
                    {
                        "id": "8177BE12-F69B-4A51-B12E-976D2AE37487",
                        "info": "more_data"
                    },
                    {
                        "id": "06A846C5-2138-4107-A5B0-A2FC21B9F32D",
                        "info": "more_data"
                    }
                ]
            }
    }

在镜头中,这实际上是一个具有整数属性的嵌套对象.0、1等

所以我试过了,但是它抛出了一个错误:.0 appears out of place

代码语言:javascript
运行
复制
SELECT * 
FROM topic_name
WHERE payload.foo.bar.0.id = "8177BE12-F69B-4A51-B12E-976D2AE37487" 
LIMIT 10

我也尝试用双引号/单引号包装0,这会抛出一个500错误。

我从主题的第一条消息中复制并粘贴了UUID,所以它肯定存在。我还复制和粘贴标签,以排除排印。我认为有一些特殊的方法可以使用这样的嵌套对象访问数组,但我很难找到任何讨论它的文档或视频。

我可以确信值存储在第一个数组元素中,但是能够搜索所有对象的方法也会很棒。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 16:22:29

语法(如果您知道数组索引--正如我最初的问题)是:

代码语言:javascript
运行
复制
SELECT * 
FROM topic_name
WHERE payload.foo.bar[0].id = "8177BE12-F69B-4A51-B12E-976D2AE37487" 
LIMIT 10

虽然如果数组索引是未知的,并且您需要检查它们,我仍然很难做到这一点。我假设此时不可能在WHERE子句中不使用一系列OR语句来检查所有这些语句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71774801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档