他のコレクション内のドキュメントの「カウント」のクエリに基づいて、Mongodb でドキュメントを更新する可能性はありますか? アトミック操作にするオプションを探しています。
具体的には、次のように 2 つのコレクションが設計されています。
図書(コレクション)
_id 名前 isReviewed [ブール値]
レビュー (コレクション)
_id bookID [図書コレクション内の_id] コメント
本の「レビュー」配列は成長し続け、変更可能であるため、このデザインを思いつきました。現在、「レビュー」ドキュメントがある場合、「書籍」ドキュメントの isReviewed フラグを「true」に設定する必要があります。それぞれの本のために作成されました。書籍に関連するレビューが少なくとも 1 つ存在する限り、フラグは「true」のままです。
書籍に存在するレビューがない場合、同じフラグが「false」に設定されます。(書籍ドキュメント作成時のフラグのデフォルト値は「false」です) レビューが削除されると、書籍のレビュー数が計算され、「false」に設定できるかどうかが確認されます。(カウントが 0 の場合は、false に設定されます)。
このシステムは、書籍やレビューなどのすべてのリソースを共有するマルチユーザー環境向けに設計されています。すべてのユーザーには、すべてのリソースに対する読み取り/書き込み権限が与えられます。
上記のケースを考慮して、「Reviews」コレクションの「count」に基づいて「isReviewed」フラグの設定に関連する更新を確実に実行するにはどうすればよいですか?
これはトランザクションなしでは解決できないケースですか (つまり、RDBMS が必要ですか)。コレクションの再設計にもオープンです。
どんな助けでも大歓迎です、ありがとう