0
既存のノードを置き換えるのにNeo4JClientを使用しようとしています。私はまだ新鮮なので、私はこれを正しくやっているかどうかはわかりません。クエリは、既存ノードのすべてのプロパティを新しいノードのプロパティに更新する必要があります。Neo4j:既存のノードを置換する
public static Node<VitalSignEvent> MergeVitalSignEvent(VitalSignEvent mergedEvent)
{
try
{
vsNode = DBUtils.DBService.Cypher
.Merge($"(evt:VitalSignEvent {{ItemId: {mergedEvent.ItemId}, DateObserved: {mergedEvent.DateObserved} }})")
.OnMatch()
.Set("evt = merged")
.WithParam("merged", mergedEvent)
.Return(evt => evt.As<Node<VitalSignEvent>>())
.Results.FirstOrDefault();
}
catch (Exception e)
{
LogException(nameof(MergeVitalSignEvent), e);
}
return vsNode;
}
あなたがしようとしていることは不明です。より詳細な情報を提供できますか?あなたのコードは、同じパターンを持つ既存のノードがまだ存在しない場合にのみ新しいノードを作成し、最初に存在する一致するノードまたは新しいノードを返します。 「更新」も「置換」も行われません。 – cybersam
@cybersam既存のノードを更新します。いずれかのプロパティが異なる場合は、新しいノードの値を取得する必要があります。 –
しかし、 "新しい"ノードはまだありません。一致するノードがまだ存在しない場合、新しいノードを作成しようとしていますか?既存のノードを見つけるための 'key 'として' mergedEvent.ItemId'を使いたいのですか、 'mergedEvent.ItemId'と' mergedEvent.DateObserved'をキーとして使いたいですか? – cybersam