You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Age中创建顶点时添加嵌套属性?

在Apache Age中实现节点的嵌套属性(类似Python嵌套字典)

Apache Age 基于 PostgreSQL,天然支持用 JSONB 类型存储嵌套结构,完全可以实现类似 Python 嵌套字典的效果。以下是具体操作方法:

创建带嵌套属性的节点

直接在节点属性中写入嵌套键值对即可,Age 会自动将其解析为 JSONB 类型存储:

CREATE (u:User {
    name: 'Bob',
    age: 28,
    details: {
        work: {
            company: 'Tech Corp',
            position: 'Software Engineer',
            years: 3
        },
        hobbies: ['hiking', 'reading'],
        contact: {
            email: 'bob@example.com',
            social: {
                twitter: '@bobtech',
                github: 'bobgithub'
            }
        }
    }
})
RETURN u;

查询嵌套属性

通过.直接访问深层嵌套属性,和 Python 字典的访问逻辑一致:

-- 获取Bob的公司名称
MATCH (u:User {name: 'Bob'})
RETURN u.details.work.company AS company;

-- 获取Bob的Twitter账号
MATCH (u:User {name: 'Bob'})
RETURN u.details.contact.social.twitter AS twitter;

更新嵌套属性

修改浅层嵌套属性

MATCH (u:User {name: 'Bob'})
SET u.details.work.position = 'Senior Software Engineer'
RETURN u;

修改深层嵌套属性(用PostgreSQL的jsonb_set函数)

针对多层嵌套的属性,使用jsonb_set函数更稳妥:

MATCH (u:User {name: 'Bob'})
SET u.details = jsonb_set(u.details, '{contact,social,github}', '"bob_github_new"')
RETURN u;

这里的'{contact,social,github}'是路径数组,指定要修改的深层属性位置,最后一个参数为新值(字符串需用双引号包裹)。

内容的提问来源于stack exchange,提问作者Moontasir Mahmood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:31:05