簡體   English   中英

如何使用neo4jclient檢索特定的neo4j節點屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM