定义我们应该使用哪种方法来创建一个新的顶点以及为什么

时间:2015-12-09 15:47:37

标签: node.js orientdb orientjs

我使用的是orientjs版本:2.1.0和orientdb版本2.1.6社区版

从github文档中我发现有两种方法可以创建新的顶点。

这是第一种方法

db.create('VERTEX', 'User')
        .set(newUser)
        .one()
        .then(function (record) {
            logger.info("Created record " + record)
            return resolve(record)
        }).catch(function (err) {
            logger.error("Error in creating user ");
            logger.error(err);
            return reject(err)
        })

这是第二种方法

var User = db.class.get("User").then(function (User) {
        User.create(newUser).then(function (record) {
            logger.info("Created record " + record)
            return resolve(record)
        })
    }).catch(function (err) {
        logger.error("Error in creating user ");
        logger.error(err);
        return reject(err)
    })

那么哪种方法首选?为什么?什么时候使用db.create和class.create?

我认为第一种方法更快一些,因为只有一次调用db。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:2)

2.1文档鼓励使用CREATE VERTEX:“By 使用graph命令而不是标准SQL语法OrientDB 确保您的图表保持一致。“ (http://orientdb.com/docs/2.1/Tutorial-Working-with-graphs.html) 这句话有点令人困惑,但我认为它只是意味着使用CREATE VERTEX使得它完全透明,即创建一个新的顶点。相比之下,使用INSERT INTO <class>可能会也可能不会创建新的顶点,具体取决于类层次结构的定义方式。

不幸的是,有一点需要注意 - 请参阅http://orientdb.com/docs/2.1/SQL-Create-Vertex.html的顶部 我相信这个警告一般涉及顶点,而不是是否应该使用CREATE VERTEX。在大多数情况下,该警告可能不适用,但仍然令人失望的是,人们可能不得不担心这些事情。