我只是想确保我不在内存中加载db的所有节点,只在迭代器中使用nodes.next()调用。这就是我所拥有的:
try (Transaction tx = graphDB.beginTx()) {
Node node = graphDB.getNodeById(1);
ResourceIterator<Node> nodes = graphDB.traversalDescription().evaluator(Evaluators.all()).traverse(node).nodes().iterator();
while (nodes.hasNext()) {
Node node = nodes.next();
// do stuff with the node...
}
}
这是对的吗?
答案 0 :(得分:1)
是的,这是对的。
仅加载由nodes.next()拉取的节点。
在迭代期间,它会根据需要提取数据以填充迭代器。