【问题标题】:How to create label in neo4j using nodejs如何使用nodejs在neo4j中创建标签
【发布时间】:2014-03-11 11:10:04
【问题描述】:

我使用以下方法在 Neo4j 中使用 nodejs 创建一个节点。我想创建一个带有标签和一些属性的节点。

var query = [
        "CREATE (n:TYPE {props})",
        "RETURN n",
    ].join('\n').replace('TYPE','PLAYER'); 
    var params = {
        props: data,
    };


    neo4jClient.query(query, params, function (err, results) {
        if(err) return callback(err);
        var node = neo4jClient.createNode(results[0].n._data.data);
        var player = new Player(node);
        node.save(function (err) {
            console.dir(err);
            if (err) return callback(err);            
            node.index(INDEX_NAME, INDEX_KEY, INDEX_VAL, function (err) {               
                if (err) return callback(err);
                callback(null, player);
            });
        });
    });

问题:- 一切正常,但此方法在 neo4j 中创建了两个节点。我不知道内部发生了什么。请给我一些关于这个问题的意见。

【问题讨论】:

    标签: node.js neo4j label graph-databases


    【解决方案1】:

    您实际上执行了创建节点的查询(并且已经足够好了)。

    但是你再去创建一个新节点 node.save() + node.index() 两者都不是必需的,因为 CREATE 查询已经完成了工作。

    【讨论】:

    • 感谢@Michael Hunger。当我删除保存和索引方法时它可以工作。但是它保留在 Neo4j 数据库中,但它没有保留在 nodejs 中。意味着如果我在该节点上创建一个索引,那么它会给我以下错误。错误:- 在索引之前节点必须存在。在这里,他们还提到了防火方法。 coffeedoc.info/github/thingdom/node-neo4j/master (GraphDatabase -> createNode 方法)
    【解决方案2】:

    它适用于以下功能。

    neo4jClient.query(query, params, function (err, results) {
            if(err) return callback(err);
            var node = results[0].n;
            var player = new Player(node);  
    
            node.index(INDEX_NAME, INDEX_KEY, INDEX_VAL, function (err) {               
                if (err) return callback(err);
                console.log("=============================");
                callback(null, player);
            });
        });
    

    neo4jClient.query 本身会创建一个节点,因此如果您再次调用函数 createNode,那么它也会创建第二个节点。因此,如果您删除 createNode 函数,则 .query 函数会创建一个节点,并且还会在数据库和 nodejs 中持久化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2021-09-17
      • 2018-11-03
      • 1970-01-01
      相关资源
      最近更新 更多