修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

v4.0
搜索
中文EN
v4.0

    修改

    命令、参数

    修改操作可以在当前图集中单一或批量地修改点、边数据。UQL 先根据过滤条件找出待修改的点、边,再修改其属性。除了唯一标识 _id_uuid,其它属性均可以修改。

    语法:

    • 命令:update()
    • 参数:(见下表)
    • 语句别名:支持自定义别名,结构类型为 NODE 或 EDGE
    参数 类型 规范 描述 自定义别名结构类型
    nodes()edges() filter Ultipa 过滤器,必填 点或边的过滤条件 不支持自定义别名
    set() obj 必填 要修改的属性键值对组成的对象 不支持自定义别名
    limit() int > 0 要修改的点或边的数量 不支持自定义别名

    修改操作会增加图集中的无效数据,影响数据查询的效率,建议定期对图集进行碎片整理,详见上一章内容《图集》篇的 compact() 命令。

    不建议在算法流式返回之后进行更新操作,详见《Ultipa 图分析与图算法》-《算法的使用》-《执行方式》-流式返回 stream() 的相关说明。

    修改点(node)数据

    // 修改当前图集中的点数据
    update().nodes(<filter>)
      .set({<property1> : <value1>, <property2> : <value2> ...})
      .limit(<N>)
    

    示例:修改银行卡 C001 的余额为 300

    update().nodes({_id == "C001"})
      .set({balance: 300})
    

    示例:修改所有银行卡的积分为“余额 × 级别”

    update().nodes({@card})
      .set({score: balance * level})
    

    示例:将 5000 张 2 级以下但余额超过 200,000 的银行卡升一级

    update().nodes({@card && level < 2 && balance > 200000})
      .set({level: level + 1})
      .limit(5000)
    

    分析:内存紧张或数据量过大时,可使用 limit() 参数限制处理的数据量,分批进行处理。

    修改边(edge)数据

    修改边的端点 _from_to_from_uuid_to_uuid 时,新的端点必须已经存在于图系统中,否则会导致操作失败;修改起点 _from 时,系统会自动修改 _from_uuid,反之亦然,修改终点时同理;同时修改 _from_from_uuid时,如果二者不符合图集中的对应关系,系统以 _from_uuid 为准,同时修改 _to_to_uuid 时同理。

    // 修改当前图集中的边数据
    update().edges(<filter>)
      .set({<property1> : <value1>, <property2> : <value2> ...})
      .limit(<N>)
    

    示例:修改交易 TRX001 的金额为 100

    update().edges({@transaction.no == "TRX001"})
      .set({amount: 100})
    
    请完成以下信息后可下载此书
    *
    公司名称不能为空
    *
    公司邮箱必须填写
    *
    你的名字必须填写
    *
    你的电话必须填写
    *
    你的电话必须填写