【问题标题】:Check if database with specified name exists or not检查指定名称的数据库是否存在
【发布时间】:2023-10-08 23:49:02
【问题描述】:

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

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

【问题讨论】:

    标签: orientdb waterline oriento sails-orientdb


    【解决方案1】:

    没有函数.exists(),但Oriento 有一个名为.list() 的函数,它将列出所有数据库并允许检查特定数据库是否存在。要从 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

    【讨论】: