1

次の Cypher クエリを実行しようとしています。

CREATE UNIQUE (
event:Event { 
    id : '94ECE7BE-882C-446B-94FE-9348E0DF5E08', 
    startTimestamp : 1370821057.000000, 
    endTimestamp : 1370907457.000000, 
    type : 2, 
    category : 1,
    privacy : 1,
    dressCode : 4 
}), 
event<-[:CREATOR]-(creator:User { 
    id : '55A1CA51-9489-41E1-8083-EC23E974E604', 
    type : 1, 
    email : 'something@gmail.com' 
});

私が得るのはやや面倒なエラーメッセージだけです:

Think we should have better error message here? Help us by sending this query to cypher@neo4j.org.

このクエリの問題は何ですか?

ありがとう

4

1 に答える 1

1

create uniqueパターンを固定するための関係が必要です。DB 内のノードがクエリ内のノードと一致しないことを確認することは問題になるため、パフォーマンス上の理由から想定しています。また、クエリは実行ごとに新しい User ノードを作成しますが、これはおそらくあなたが望むものではありません。

既存のクリエーター ノードがある場合 (たとえば、既知のユーザーのみがイベントを追加できる)、それを出発点として使用できます。

match creator:User where creator.id='unique' 
CREATE UNIQUE (
event:Event { 
    id : '94ECE7BE-882C-446B-94FE-9348E0DF5E08', 
    startTimestamp : 1370821057.000000, 
    endTimestamp : 1370907457.000000, 
    type : 2, 
    category : 1,
    privacy : 1,
    dressCode : 4 
})<-[:CREATOR]-(creator) 

次の 2.0 マイルストーンでは、型に一意の制約が追加される可能性があります。

新しいノードを作成したい場合creator、回避策の 1 つは、すべてのイベントを専用のアンカーにアタッチすることです。

start n=node(0) CREATE UNIQUE n-[r:FOO]- (
event:Event { 
    id : '94ECE7BE-882C-446B-94FE-9348E0DF5E08', 
    startTimestamp : 1370821057.000000, 
    endTimestamp : 1370907457.000000, 
    type : 2, 
    category : 1,
    privacy : 1,
    dressCode : 4 
})<-[:CREATOR]-(creator:User { 
    id : '55A1CA51-9489-41E1-8083-EC23E974E604', 
    type : 1, 
    email : 'something@gmail.com' 
}) return event, creator

だから、それをしないほうがいい。

于 2013-06-09T09:52:50.610 に答える