1

您可能知道,每当我们在“sails-orientdb 适配器”配置中设置一个新数据库时,它都会创建数据库,现在在创建数据库时,如果 orientdb 中没有具有此名称的数据库,当然会创建数据库,现在我想要创建与类相关的顶点,您可以说这些顶点是我的应用程序的默认值,每当创建新数据库时,也会创建这些默认值,但是当数据库已经存在时,这些默认值也会被跳过。

现在,在 Waterline 或 Oriento 中是否有类似 exists() 的函数可以检查配置中指定名称的数据库是否存在于 orientdb 中并返回 true 或 false?

4

1 回答 1

1

没有一个函数.exists(),但 Oriento 有一个名为的函数.list(),它将列出所有 DB 并允许检查特定 DB 是否存在。要从 Sails-OrientDB 执行此操作,您可以使用自定义方法.getServer(),如下所示:

// Assume a model named "Post"
Post.getServer()
  .list()
  .then(function (dbs) {
    var dbExists = _.find(dbs, function(db) {
      return db.name === 'myDatabaseName';
    });
    console.log('myDatabaseName exists:', dbExists);
});

这是 Sails-OrientDB 在创建数据库之前用来确定数据库是否存在的逻辑:https ://github.com/appscot/sails-orientdb/blob/master/lib/connection.js#L604-L608

于 2015-06-20T11:32:48.437 回答