为了账号安全,请及时绑定邮箱和手机立即绑定

Rethinkdb, Go:在一个 ReQL 语句中确保表和索引

Rethinkdb, Go:在一个 ReQL 语句中确保表和索引

Go
慕码人2483693 2022-03-07 16:06:11
我需要确保在应用程序启动时存在表。如果表不存在并且需要创建,我还想在表上创建二级索引。它在 Go 中很容易完成,但我想在一个语句中在 ReQL 中完成。所以我想出了这个:func ensureTableIndex(ses *r.Session, name string, index string) (err error) {    err = r.TableList().Contains(name).Do(r.Branch(r.Row, r.Expr(nil), r.Do(func() r.Term {        return r.TableCreate(name).Do(func() r.Term {            return r.Table(name).IndexCreate(index)        })    }))).Exec(ses)    return}似乎通过了测试。我的问题是,这是否是一次性创建表和索引的正确/有效方式?使用 ReQL Do() 函数是对多个写入命令进行排序的正确方法吗?
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

是的,do这是您在 ReQL 中对操作进行排序的正常方式。但是r.Doas 第三个参数branch是多余的;你可以直接把tableCreate电话放在那里。


查看完整回答
反对 回复 2022-03-07
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信