私は次の暗号クエリを持っています:
start n=node(0)
match (n)-[:USER_BELONGS_TO]-(x)-[r]->(y)
where (x.EmailAddress = 'someoneelse@something.net')
and (y.EmailAddress = 'someone@something.net')
and (type(r) = 'FOLLOWS')
delete r;
Neo4jClientに同じことをさせるにはどうすればよいですか?(そして、クエリが成功または失敗したことを示してください)
私はこのようなことを考えていました:
var results = new CypherFluentQuery(_dataOperations.GraphClient)
.Start("n", _dataOperations.GraphClient.RootNode)
.Match(string.Format("(n)-[:{0}]-(x)-[r]->(y)", UserBelongsTo.TypeKey))
.Where(string.Format("x.EmailAddress! ='{0}'", follower))
.And()
.Where(string.Format("y.EmailAddress! ='{0}'", leader))
.And()
.Where(string.Format("type(r) = '{0}'", Follows.TypeKey))
.Delete("r")
.Results;
ただし、Delete()はそのコンテキストでは機能しません。
RelationshipReferenceを取得できれば、メソッドを呼び出すことができます
void DeleteRelationship(RelationshipReference reference);
しかし、サイファーを介してRelationshipReferenceを取得できるかどうか、また次のようなクエリを試してみるとわかりません。
var results = new CypherFluentQuery(_dataOperations.GraphClient)
.Start("n", _dataOperations.GraphClient.RootNode)
.Match(string.Format("(n)-[:{0}]-(x)-[r]->(y)", UserBelongsTo.TypeKey))
.Where(string.Format("x.EmailAddress! ='{0}'", follower))
.And()
.Where(string.Format("y.EmailAddress! ='{0}'", leader))
.And()
.Where(string.Format("type(r) = '{0}'", Follows.TypeKey))
.Return<RelationshipReference<Follows>>("r")
.Results
.SingleOrDefault();
Neo4jClient内で逆シリアル化が行われていると、次の「このオブジェクトにパラメーターなしのコンストラクターが定義されていません」というメッセージが表示されます。とにかく、これを2つではなく、1つのクエリで実行したいと思います。