在 Neptune 的 OpenCypher 实现中模拟 MERGE



我正在尝试使用他们的新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子句。

最新更新