2015-12-09 35 views
2

我使用orientjs版本:2.1.0和orientdb版本2.1.6社區版東方JS,我們應該使用哪種方法來創建一個新的頂點,爲什麼

從github上的文檔,我發現,有2種方式創建一個新的頂點。

這是第一個方法

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?

我認爲第一種方法是比較快一點,因爲只有一個數據庫調用。糾正我,如果我錯了。

回答

2

2.1文檔鼓勵使用CREATE VERTEX:「通過 使用圖形命令通過標準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。需要說明可能不會在大多數情況下適用,不過,這是令人失望的是一個可能要關注這樣的事情。

+0

但db.create(「頂點」 ......和User.create都是圖形命令吧? – Konza

相關問題