ドキュメントがある場合は更新するか、ドキュメントがない場合は追加する場合は、upsert
があります。upsertがドキュメントのようにフィールドを更新または設定する方法はありますか?
フィールドが存在する場合は更新するか、そうでない場合は追加しますか?
私の文書は、最初からこのようになりますUserProfiles
と呼ばれる想像:
{
_id: "c8fdu98JC",
questions: []
}
しかし、答えが追加された場合も、次のようになります。
{
_id: "c8fdu98JC",
questions: [{questionId: "age", answerId: "b"}]
}
したがって、ユーザーが答えをクリックしますか、彼の心を変えて別の答えを選んでください。このフィールドを更新または設定するには、upsert
種類の操作を実行できますか?
これ、それがすでに存在する場合
UserProfiles.update({_id: userId,
'questions.questionId': questionId},
{$set: {'questions.$.answerId': answerId}})
のみを更新します。
答えがこの目的のためにupsert
種類の操作が利用できない可能性が非常に高いので、これを最もコストのかからない(ただし安全な)方法で行うにはどうすればよいでしょうか?