Rethinkdb 替换为 getAll

Rethinkdb replace with getAll

我有一个 table 用户,每一行看起来像这样:

{
  id: <user's id>,
  email: <user's email>
}

其中 id 是主键,email 有一个二级索引。

我只想在同一电子邮件不存在其他用途​​时添加用户。通常我会为此使用两个查询:getAll(<user's email>, {index: 'email'}) 以确保电子邮件未被占用,然后是 insert({email: <user's email>} 但这是两个单独的查询(即不是原子操作)。

有没有办法使用getAll自动检查和设置?

注意:我知道用 get 可以做到这一点,如图 here 但不适用于 getAll

不幸的是,您不能对二级索引执行原子操作。最好的办法可能是添加另一个 emails table,其中主键是电子邮件地址。