Kueri cypher MATCH (n:BusinessBranch) RETURN n
mengembalikan semua node dan saya ingin menghapus duplikat node dan relasinya berdasarkan properti address
. Bagaimana aku melakukan itu?
1 menjawab
[DIPERBARUI]
Untuk menghapus semua
BusinessBranch
node yang memiliki nilai propertiaddress
yang sama (yang juga memerlukan penghapusan semua hubungannya):MATCH (b:BusinessBranch) WITH b.address AS address, COLLECT(b) AS branches WHERE SIZE(branches) > 1 FOREACH (n IN branches | DETACH DELETE n);
Kueri ini mengumpulkan semua
BusinessBranch
node yang memiliki alamat yang sama, memfilter koleksi yang memiliki lebih dari satu cabang, dan kemudian menggunakanDETACH DELETE
pada semua cabang dalam koleksi yang dihasilkan (yang akan menghapus cabang < em>dan hubungan mereka).Untuk menghapus semua kecuali satu dari simpul duplikat, Anda dapat melakukan ini:
MATCH (b:BusinessBranch) WITH b.address AS address, COLLECT(b) AS branches WHERE SIZE(branches) > 1 FOREACH (n IN TAIL(branches) | DETACH DELETE n);
Namun, dalam hal ini Anda harus terlebih dahulu melihat prosedur APOC apoc.refactor.mergeNodes, yang lebih sesuai untuk sebagian besar kasus penggunaan.