我知道我可以做的一种方式是通过列出通过dbList()和tableList()再想找我想要的结果.
有没有更简单的方法?
编辑
我的目标是创建一个表,以防它不存在.
Tho*_*lle 35
如果要创建数据库(如果它不存在),或者获取"数据库已存在"之类的值(如果存在),则可以执行以下操作:
r.dbList().contains('example_database')
.do(function(databaseExists) {
return r.branch(
databaseExists,
{ dbs_created: 0 },
r.dbCreate('example_database')
);
}).run();
Run Code Online (Sandbox Code Playgroud)
如果创建它将返回以下内容:
{
"config_changes": [
{
"new_val": {
"id": "1ee7ddb4-6e2c-43bb-a0f5-64ef6a6211a8",
"name": "example_database"
},
"old_val": null
}
],
"dbs_created": 1
}
Run Code Online (Sandbox Code Playgroud)
这个如果它已经存在:
{
"dbs_created": 0
}
Run Code Online (Sandbox Code Playgroud)
对于现有检查表,我找到了以下解决方案:
r.tableList().run(connection); //['people']
Run Code Online (Sandbox Code Playgroud)
这将返回一个在默认数据库上定义的表数组,例如:['people'].(如果你想设置它这样做:connection.use('test');)
然后我们可以检查数组是否包含要创建的表名.
_.some(tableNames, tableName)
Run Code Online (Sandbox Code Playgroud)
把它们放在一起:
if (!_.isNil(tableName) && _.isString(tableName) && !_.isNil(connection)) {
r.tableList().run(connection).then(function(tableNames) {
if (_.includes(tableNames, tableName)) {
return r.tableCreate(tableName).run(connection);
} else {
return;
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9447 次 |
| 最近记录: |