独特= create_or_fail
创建一个新的节点时,因为它抛出一个4XX响应,如果重复的索引键/值已经存在的伟大工程的Neo4j Uniquness。
但是,如果节点已经存在和索引,需要更新的索引值,也没有办法(据我所知),以更新的值,如果新的值已经存在失败。这是因为如果新值已经存在,则添加节点到索引REST调用不会引发4xx响应。就我所见,索引的添加节点甚至不参与索引的唯一性。
一种解决方法是删除节点,并重新添加它,但是这并不容易,因为所有其他指标,在此节点上的关系将不得不重新创建。
另一种解决方案是将唯一参数添加到添加节点,以指数REST调用 http://docs.neo4j.org/chunked/1.9.M05/rest-api-indexes.html#rest-api-add-node-to-index
对此有什么其他的想法?
感谢
通常唯一参数。什么是你的具体用例?您可以使用REST的API指数的看跌期权,如果非存在的语义和如果成功删除旧的值从指数这个节点。 – 2013-03-25 23:44:18
,如果你有一个用户的电子邮件地址的唯一索引和用户更新他们的地址,例如。在这种情况下,你不会想创建,因为所有的现有关系的一个新用户节点将不得不重新创建。什么是好的是在插入到索引调用中具有相同的唯一性参数。这将在成功时返回200,在冲突时返回4xx。如果成功,批处理中的下一个命令将是从索引中删除。所以就你而言,这不会是一个更新。它是插入和删除索引值并在批处理事务中完成的。 – KanTube 2013-03-26 16:42:00