[英]How do I retrieve a specific neo4j node property using neo4jclient?
我有一些數據存儲為neo4j節點。 該節點具有一些未由關聯的C#類描述的屬性,因此在neo4jclient查詢返回時不會自動映射回該類。
例如,此C#類:
public class Node {
public string name;
public int number;
public CustomClass data;
}
存儲在neo4j中,然后使用以下neo4jclient流利代碼進行檢索:
var query = client.Cypher
.Match("(n:Node)")
.Return(n => n.As<Node>())
.Results;
將使用名稱和編號填充Node對象,但保留對CustomClass對象的空引用。
為了解決此問題,我將CustomClass序列化為JSON字符串,並將其存儲為neo4j作為字符串屬性。 為了反序列化此JSON類,我需要從neo4j中存儲的Node中檢索JSON字符串屬性。
neo4jclient文檔建議以下內容:
.Return(() => new {
JSONString = Return.As<string>("matchedNode.JSONProperties")
})
但是,這是無效的代碼。 該上下文中不存在 JSONString =
之后的Return
。
請參閱答案。
如何從數據庫中獲取JSONPropeties字符串?
給定的代碼完全按預期工作,您只需要包括正確的neo4jclient參考即可。 在這種情況下
using Neo4jClient.Cypher;
這樣, Return
不再是未定義的。 如果需要訪問所有匹配的元素,這也是All
類的位置。
除了您的答案,除了添加
using Neo4jClient.Cypher
您還可以選擇僅返回Node
屬性,如下所示:
var query = client.Cypher
.Match("(n:Node)")
.Return(n => n.As<Node>().name) //<-- returning just the property
.Results;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.