$setOnInsert
を使用できます
挿入の場合にのみ適用されるように、更新パラメーターで。ドキュメントがすでに存在する場合、更新はノーオペレーションになります:
return await Foo.findOneAndUpdate(
filter, // find a document with that filter
{$setOnInsert: fooDoc}, // document to insert when nothing was found
{ upsert: true, new: true, runValidators: true }
)
filter
に含まれるフィールドにも一意のインデックスを作成する必要があることに注意してください 次に、重複エラーの可能性を処理します。 この投稿
をご覧ください 理由の詳細については。