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

Memgraph是否提供获取节点/边属性变量长度的内置函数?

获取Memgraph中节点/边属性的变量长度方法

Memgraph提供两种可行方案来获取节点或边属性的变量长度:

1. 使用内置size()函数

Memgraph支持Cypher标准的size()函数,可直接计算不同类型属性的长度:

  • 针对字符串属性:返回字符串的字符数量
  • 针对列表/数组属性:返回列表的元素个数
  • 针对字典属性:返回字典的键值对数量

示例查询

查询节点属性长度

MATCH (u:User)
RETURN u.username, size(u.username) AS username_length,
       u.tags, size(u.tags) AS tag_count;

查询边属性长度

MATCH (p:Post)-[l:LIKED_BY]->(u:User)
RETURN l.comment, size(l.comment) AS comment_length;

2. 编写自定义查询模块函数

如果需要处理特殊属性类型(比如自定义复杂结构),可以通过Memgraph的查询模块功能编写自定义长度计算函数,支持Python或C++实现。

示例Python自定义函数

from mgp import *

@function
def calc_prop_length(context: Context, property_value: Any) -> int:
    # 处理字符串
    if isinstance(property_value, str):
        return len(property_value)
    # 处理列表/数组
    elif isinstance(property_value, list):
        return len(property_value)
    # 处理字典
    elif isinstance(property_value, dict):
        return len(property_value)
    # 其他类型返回0或按需调整
    else:
        return 0

将上述代码保存为Python文件后,加载到Memgraph中即可在Cypher查询中调用:

MATCH (n:Product)
RETURN n.custom_attr, calc_prop_length(n.custom_attr) AS attr_length;

内容的提问来源于stack exchange,提问作者Taja Jan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:23:10