和
batch = neo4j.WriteBatch(graph_db)
for n in nodes:
batch.create_indexed_node_or_fail(index, key, value, {node properties})
batch.submit()
您可以轻松地批量创建索引节点。
但是如何批量创建一个节点并同时添加多个键:值对呢?或者将节点添加到多个索引?
我想到的一个想法是首先创建节点,然后将它们添加到第二批的索引中:
for n in nodes:
batch.create({node properties})
results = batch.submit()
for r in results:
batch add node to index1
batch add node to index2
batch.submit()
但这似乎很复杂。Py2neo 太神奇了,一定有更简单的方法。
根据奈杰尔的回答,我尝试了这个节点列表:
batch = neo4j.WriteBatch(graph_db)
item_in_batch = 0
for n in list_of_nodes:
batch.create(n) # this works, all nodes are created
batch.add_indexed_node("people", "key", "value from n", item_in_batch)
batch.add_indexed_node("people", "key2", "other value from n", item_in_batch)
i += 1
batch.submit()
一些节点最终出现在我的索引中,但不是全部。当我在索引中搜索 ('key:value-from-n") 时,它返回一个节点,但不是正确的节点。当我尝试将它们添加到索引时,如何访问节点的“内部”ID?
我尝试了 py2neo 的(当前正在测试)版本 1.6.0,它可以工作!
n = batch.create(node)
现在返回一个请求对象,该对象可以在批处理中用于引用节点。
1.6.0的文档中有一个示例