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,其中主键是电子邮件地址。
我有一个 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,其中主键是电子邮件地址。