如何通过在py2neo中为neo4j循环创建多个节点

时间:2017-09-06 02:48:34

标签: neo4j py2neo

请帮我解决这个问题。我正在关注此链接上的教程:https://www.kernix.com/blog/an-efficient-recommender-system-based-on-graph-database_p9。我无法修改以下内容,以便它可以符合py2neo v3的新格式,其中使用了graph.run而不是graph.cypher.begin()。下面代码的目的是创建相对于Users的节点,每个节点由其user_id和“MERGE”请求标识:如果新节点不存在则创建新节点

tx = graph.cypher.begin()
statement = "MERGE (a:`User`{user_id:{A}}) RETURN a"
for u in user['id']:
    tx.append(statement, {"A": u})
tx.commit()

非常感谢您提前

1 个答案:

答案 0 :(得分:0)

使用py3neo的v3,您的代码段将如下所示:

var allRecords = function(skip, limit) {
  return User.find({})
    .limit(limit)
    .skip(skip)
    .exec()
    .then(records => {
        console.log('executed');
        // if records found
        return {
            data: records,
            status: constant.READ_SUCCESS,
        };
    })
    .catch(err => Promise.reject(constant.READ_ERROR));
};

begin()是Graph类的一个方法,它将创建一个新事务。  Transaction.run会将Cypher语句发送到服务器执行 - 但在调用Transaction.commit之前不会提交事务。