2012-05-10 7 views
3

私はドキュメント私は、インデックスクエリがノードを返すことを期待http://readthedocs.org/docs/neo4j-rest-client/en/latest/indices.htmlneo4jrestclient index resultsはnode/urlではなくIterableを返しますか?

に従うことをしようとしているが、それが返されます。代わりに「反復処理可能なノード」:

db = GraphDatabase("http://localhost:7474/db/data") 
playerIndex = db.nodes.indexes.get("index1") 
playerNode = db.nodes.create(player_id = "Homer") 
playerIndex.add("player_id", "Homer", playerNode) 
print playerIndex["player_id"]["Homer"], "\n", playerNode 

プリント:

<Neo4j Iterable: Node> 
<Neo4j Node: http://localhost:7474/db/data/node/157> 

2番目の行のようにNodeを返すように、neo4jrestclientインデックスのクエリ結果を取得するにはどうすればよいですか?

答えて

3

@espeedが指摘したように、.next()はあなたに、インデックス内の次のノードを与える呼び出します。クライアントがこのように動作

print playerIndex["player_id"]["Homer"][:], "\n", playerNode 

は、任意のインデックスのクエリは常に返すので:

for node in playerIndex["player_id"]["Homer"]: 
    print node, "\n", playerNode 

それともスライス[:]を使用して、イテレータのすべての結果を得る: また、イテレータを反復処理することができます要素が1つしかない場合でも、要素のリスト。したがって、これを処理するための最良の方法は、遅延ロードを伴うイテレータを使用することです。

+0

**感動**あなたの岩!これからもいい結果を出し続けてください! – McPedr0

関連する問題