新しい文書が存在しない場合は作成し、作成した新しい文書を返したい場合は、私は例外がスローされたいです。'存在しない場合は'新しい文書を作成してMongoDB NodeJSネイティブドライバで新しい文書を返す方法
私はこれをやっているやり方がハッキリしているようだと思いますが、これを行うにはより良い方法がありますか?あなたはそれが存在しない場合は、それを更新したい場合は
var query = { name: 'guaranteed to be unique' }
var new_doc = { ... }
var col = // the Mongo collection we're using
col.updateOne(
query,
new_doc,
{upsert: true}
)
.then(update => col.findOne({_id, update.result.upserted.pop()._id}))
.then(doc => console.log(doc))
.catch(exception => console.log('that already exists'))
を設定して検索が依存しますか?もしそうなら、あなたは単に 'update'に' {upsert:true} 'を使うことができます。それ以外の場合は正しく実行しています。 –
なぜ 'name'にユニークなインデックスがありませんか? – robertklep
@robertklep、ユニークなインデックスがこれをどのように解決するか説明できますか? – MatUtter