2012-07-06 23 views
17

yaparsa özelliği güncelleyin. Neo4J'de Cypher'de, iki düğüm verildiğinde, aralarında ilişki yoksa, bir ağırlık özelliği olan bir ilişki (Foo türünde) oluşturmak istiyorum. Bu ilişki zaten varsa, kilo özelliğini arttırmak isterim.Cypher'de, mevcut değilse nasıl bir ilişki oluşturabilirim; eğer

Bunu tek bir Cypher sorgusunda yapmak için iyi bir yol var mı? Teşekkürler!

Düzeltme: Bazı ek ayrıntılar: Düğümler zaten oluşturulmuş, benzersiz ve bir dizinde.

+0

Are: – Nicholas

+0

Evet, SNAPSHOT kullanıyorum. – Newtang

+0

Yani aslında tüm düğümleri taramak istiyor ve eğer bağlıysa, arttırma, değilse, ilişki oluşturuyorsunuz? – Nicholas

cevap

44

Bu tam olarak neden 1,12 içinde CREATE UNIQUE ekledik.

START a=node(...), b=node(...) 
CREATE UNIQUE a-[r:CONNECTED_TO]-b 
SET r.weight = coalesce(r.weight?, 0) + 1 

Devamı yaklaşık CREATE UNIQUEhere, soru işareti here ve here birleşmek. Eğer Neo4j bir ANLıK sürümünü kullanmaktan tamam

MATCH a, b 
WHERE a(...) AND b(...) 
CREATE UNIQUE a-[r:CONNECTED_TO]->b 
SET r.weight = coalesce(r.weight, 0) + 1 
+0

Mükemmel! Tam da aradığım şey. RELATE hakkında bilgi sahibi oldum, ama birleşik ifade değil. Tam olarak ne "?" yap? – Newtang

+0

El kitabını işaret etmek için cevabı düzenlediniz. – Andres

+4

Neo4j 2.0'den beri? operatör kaldırıldı. Bakınız: http://neo4j.com/docs/snapshot/query-operators.html#query-operators-comparison –

10

artık Neo4j 2. ile hata Yani isteği olacaktır olan bir özellik sonunda Andres cevap, soru işareti tamamlamak için? Neo4j 1.8'de Cypher'i kullanarak grafiği güncelleyebilirsiniz, ancak başka herhangi bir sürümde değil.
İlgili konular