Ich möchte einen Benutzer der Datenbank hinzufügen, aber ich würde es lieber in eine Operation statt r.table('users').get(id)
dann Einfügen tun, wenn das Ergebnis null ist.RethinkDB: Versuchen Sie, Datensatz in einem Vorgang hinzuzufügen
ich, so etwas zu tun hatte gehofft:
r.table('users').insert({
id: email
})
.run(conn)
.then(result => {
if (result.errors) {
// result.first_error contains a string message like
// "Duplicate primary key `id`:\n{\n\t".........."
}
});
Überprüfung jedoch, wenn result.first_error
enthält das Wort „Duplizieren“ scheint eine hacky Lösung.
Ist dies nur in 2 Operationen möglich (versuchen Sie den Datensatz mit get
zu finden, dann insert
, falls er nicht existiert)? Scheint ineffizient.
Ja, ich war besorgt, dass sich die Nachricht ändern könnte, aber es ist unwahrscheinlich. Ihre erste Idee funktioniert zwar, also werde ich diesen Dank verwenden, es ist ziemlich sauber mit einer Pfeilfunktion. –