我使用的是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。如果我错了,请纠正我。
答案 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。在大多数情况下,该警告可能不适用,但仍然令人失望的是,人们可能不得不担心这些事情。