1

私が.itemId生成したものではなく、サードパーティからのものがあります。

データベースでそれを探し、存在しない場合は更新または挿入する必要があります。

クックブックのこの例を使用してみました: https://www.rethinkdb.com/docs/cookbook/javascript/#manipulating-documents

  const res = await this.r.table('products').filter({itemId: item.itemId})
    .limit(1)
    .replace(doc => {
      return this.r.branch(
        doc.eq(null),
        this.r.expr(item).merge({created_at: this.r.now()}),
        doc.merge(item).merge({updated_at: this.r.now()})
      )
    }, {
      returnChanges: true
    }).run(this.conn);


  if (res.replaced) {
    return res.changes[0].new_val;
  } else {
    return item; // doc was never inserted as everything in `res` is `0`.
  }

res.changesドキュメントが存在しない場合、およびデータベースにない後にIDを検索した場合は未定義です。挿入されたことはありません。

upsert()オブジェクトの任意のプロパティを指定してコマンドを簡略化する方法はありますか?

4

1 に答える 1