我正在尝试使用他们的新opencrypt实现对AWS Neptune数据库运行MERGE
查询,但MERGE
尚未作为子句支持。
是否有一种方法可以获得MERGE
的行为而不使用MERGE
在海王星的opencrypt实现?
我希望可以这样做:
MATCH (ee:Person {name: "Sam"})
IF ee IS NULL THEN
CREATE ...
ELSE
SET ee += {...}
END
显然这只是伪代码,但是有没有办法实现这种行为而不处理它在应用程序进行调用?
opencrypt不提供在伪代码中显示的查询中执行逻辑类型的健壮功能。在AWS Neptune中支持MERGE
子句之前,实现此功能的最佳方法是使用Gremlin模式,如下所述。海王星提供了对存储在海王星中的属性图数据使用opencrypt和Gremlin(通过驱动程序或通过HTTPS)的能力。对于上面的伪代码,Gremlin的等效代码看起来像这样:
g.V().
has('Person', 'name', 'Sam').
fold().
coalesce(
addV('NEW LABEL').property('propertyName', 'foo'),
property('updateProperty', 'bar'))
更新-从亚马逊海王星的1.1.0.0版本开始,现在支持MERGE
子句。