2

我正在使用 orientjs 版本:2.1.0 和 orientdb 版本 2.1.6 社区版

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

这是第一种方法

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。如果我错了,请纠正我。

4

1 回答 1

2

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

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

于 2015-12-09T18:39:21.000 回答