我一直在研究這個問題幾個小時,而且我還沒有與Neo4j的社區Golang驅動程序運氣。如何在Go中的Neo4j數據庫上運行Cypher查詢?
我試圖運行「movies-go-cq」和「neoism」示例。 movies-go-cq示例不適用於我,it crashes when localhost:8080 is loaded in the browser。
Cypher在我的Neo4j數據庫上使用neoism查詢只返回空白/空白數據。但是,當我在localhost:7474的Neo4j瀏覽器中運行相同的查詢時,將返回預期的數據。
這裏是Go代碼我與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)
}
我正在考慮寫在Go使用的Neo4j的HTTP REST的API,如果我不能得到現有轉到驅動程序才能正常工作,我自己的API包裝;我是Golang的新手,我會很感激任何有關調試Go代碼的建議或在Golang中使用Neo4j的技巧。感謝您的時間。
[db.Cypher](https://godoc.org/github.com/jmcvetta/neoism#Database.Cypher)返回錯誤。你能捕捉到('err:= db.Cypher(&cq1)')並用'err'的值更新你的問題嗎? – algrebe