因此,上周我一直在与 cypher 作斗争,试图获得一个幂等查询,该查询删除所有连接到给定根的节点类型,然后只创建与参数中一样多的节点。问题是删除实际上不会删除任何东西,或者每次我执行查询时节点开始以令人眼花缭乱的速度增加。一次迭代在失败之前设法创建了超过 10000 个重复节点。我正在尝试将其用于 REST API 中的 PUT 请求。我正在使用 Seraph 库在 Node.js 中工作,但我只是使用它提供的基本密码查询。
这是查询的最新迭代:
var query = " MATCH (title:TITLE {sku: {sku}})" +
" OPTIONAL MATCH (title)-[r_GTIN]->(old_GTIN:GTIN)" +
" WITH title, r_GTIN, old_GTIN" +
" DELETE r_GTIN, old_GTIN" +
" WITH title" +
" CREATE (gtin:GTIN {gtins})" +
" MERGE (title)-[:has_GTIN]->(gtin);";
以下是示例参数:
{
sku: "ABC12345"
gtins: [{number: "999-999-999", type: "firstKind"},
{number: "888-888-888", type: "secondKind"},
{number: "777-777-777", type: "thirdKind"}]
}
我已经尝试了更多的变化,而不是我想重新描述的。