1

Neo4j .NET クライアントExecuteGetCypherResultsを使用してサイファーを実行しています。すべてが単一の列に返されることを期待しています。JobTypeのリストを含む単純なクラスがありますJobSpecialties。データベースでは、これは専門分野との関係を持つタイプとしてモデル化されています。

ここに画像の説明を入力

単一の列で結果をそのまま返す暗号クエリが必要です。関連は、クエリが次のようになると予想されるノードSpecialtiesの子プロパティである必要があります。Type

start s=node:node_auto_index(StartType='JobTypes')
match s-[:starts]->t, t-[:SubTypes]->ts
return {Id: t.Id, Name: t.Name, JobSpecialties: ts}

しかし、これはうまくいきません。これが可能かどうか、ドキュメントからはわかりません。結果を .Net クライアントに戻すためのより良い方法があれば、提案をお待ちしています。

4

3 に答える 3

0

ExecuteGetCypherResultsは複数の列をサポートしているため、デシリアライザーを別のモードに切り替えるだけで済みます。これは、通常、高レベルの API の背後に隠されている実装の詳細であるため、明らかではありません。

を呼び出すときは、の代わりにnew CypherQuery渡します。CypherResultMode.ProjectionCypherResultMode.Set

なぜ私たちがこれを持っているのか、実際には思い出せません。いつか、私はより低いレベルを掘り下げて、それを殺す必要があります. プルリクエストを歓迎します。:)

ただし、好みとして、より高いレベルの API を使用することを常に優先しています (ただし、いくつかの制限があることは認識しています)。

于 2013-02-20T17:26:59.787 に答える
0

.Net クライアントは cypher の更新が必要なようです。Cypher は、オンザフライでのマップの構築をまだサポートしていませんが、それは既に機能要求リストにあるものです...

結果で配列を作成できます (ただし、1.9.M04 の時点では、配列にマージするには同じタイプである必要があります): http://console.neo4j.org/r/xo7voi

私は実際にそれを修正するために (いくつかの単体テストを壊したため、バック チャネルを通じて) プル リクエストを送信しました (そのため、オンザフライで構築された配列に複数の型を含めることができます)。タイプは良い考えです。

https://github.com/wfreeman/neo4j/commit/ca457ace0df4732376833b8694e4affac4143244

更新:これは 1.9.M05/1.9.GA で修正される予定です。これで、任意のタイプが混在するアレイを構築できます: http://console.neo4j.org/r/vm4f83

于 2013-02-15T17:39:49.543 に答える
0
start s=node:node_auto_index(StartType='JobTypes')
match s-[:SubTypes]->js
return s.Id, s.Name,  js;
于 2013-02-15T09:10:15.423 に答える