2016-09-27 6 views
1

私はこの問題を数時間にわたって取り組んできましたが、Neo4jのコミュニティのGolangドライバにはあまり幸運を得ないです。GoでNeo4jデータベースのCypherクエリをどのように実行しますか?

私は "movies-go-cq"と "neoism"の例を実行しようとしました。 movies-go-cqの例は私にとっては役に立ちません。it crashes when localhost:8080 is loaded in the browser

Neoismを使用しているNeo4jデータベースのCypherクエリは、空白のデータのみを返します。しかし、Neo4jブラウザのlocalhost:7474で同じクエリを実行すると、予想されるデータが返されます。ここで

は私がneoismで実行している囲碁コードです:

package main 

import (
    "fmt" 

    "github.com/jmcvetta/neoism" 
) 

func main() { 
    // Reference: https://godoc.org/github.com/jmcvetta/neoism 

    // Connect to the Neo4j server 
    db, _ := neoism.Connect("http://localhost:7474/db/data") 

    // Issue a query 
    res1 := []struct { 
     A string `json:"path1"` // `json` tag matches column name in query 
     B string `json:"path2"` 
    }{} 
    cq1 := neoism.CypherQuery{ 
     // Use backticks for long statements - Cypher is whitespace indifferent 
     Statement: ` 
     MATCH path1 = shortestPath((plant:Plant {Term: "Vaccinium corymbosum"})-[*..5]-(gene:Gene {Description: "adenylate cyclase activating polypeptide 1"})) 
     MATCH path2 = shortestPath((gene)-[*..5]-(disease:Medical_Heading {Term: "Alzheimer Disease"})) 
     RETURN path1, path2 
     `, 
     Result: &res1, 
    } 
    db.Cypher(&cq1) 
    r := res1[0] 
    fmt.Println(r.A, r.B) 
} 

私はきちんと仕事に行くのドライバを既存の取得できない場合のNeo4jのHTTP RESTfulなAPIを使用して移動中に自分のAPIのラッパーを書いて検討しています;私はGolangを新しくしました.Goコードのデバッグに関するアドバイスやGolangのNeo4jでの作業のヒントに感謝します。あなたの時間をありがとう。

+2

[db.Cypher](https://godoc.org/github.com/jmcvetta/neoism#Database.Cypher)はエラーを返します。 ( 'err:= db.Cypher(&cq1)')をキャプチャして、あなたの質問を 'err'の値で更新できますか? – algrebe

答えて

0

私はあなたが今直面していることを知っています。私が同じ問題に直面する前のある時。 2つの場合があります: -

1)常にstruct variable Capitalを宣言する必要があります。あなたがやっている

res1 := []struct { CAPITAL_STR1 string `json:"path1"` CAPITAL_STR2 string `json:"path2"` }{} 正確に右AとBは、あなたが正確なJSON形式を貼り付ける必要があり

2)(あり正確なJSON形式のチェック出力を取得するための間違い)

res1 := []struct { CAPITAL_STR1 string `json:"path1.distance"` CAPITAL_STR2 string `json:"path2.distance"` }{}

ブラウザのNeo4Jでjsonの応答。セクションコードの下で利用可能です。

+0

ありがとう、Shivendra!私は明日の仕事で自分のコードを見ながらこれをチェックします。 – Grace

関連する問題