Tinkerpop3 /精怪。查找(A)Upsert(B)将边A添加到B

时间:2017-02-05 10:38:46

标签: gremlin tinkerpop3

我正在寻找Gremlin中的upsert功能。

客户端程序有一个$gallery = shortcode_atts( array( 'macimgs' => 'macimgs', ), $atts ); $image_ids = explode(',',$gallery['macimgs']); $output = ''; $image_no = 1; foreach( $image_ids as $image_id ){ $images = wp_get_attachment_image_src( $image_id, 'full' ); $output .='<img src="'. $images[0] .'" alt="" />'; $image_no++; } return $output; 流,需要查询favoriteMovieNodeId,然后UPSERT一个人Vertex并创建[favoriteMovie]边缘。

这将创建重复的Person节点:

(personId, favoriteMovieNodeId)

有没有办法在添加节点之前根据属性检查节点是否存在?我似乎无法找到关于这个非常基本的图形函数的文档,它是每个底层图形数据库的一部分。

1 个答案:

答案 0 :(得分:2)

如果保证电影存在,那么它是:

g.V().has('movies','uid',$favoriteMovieNodeId).as('fm').
  coalesce(V().has('Person','personId', $personId),
           addV('Person').property('personId', $personId)).
  addE('favMovie').to('fm')