MongoDB データベースに 2 つのコレクションがあります。
- クラブ コレクション
- 写真集。
それらのスキーマは次のとおりです。
var clubsSchema = new Schema({
clubName: { type: String },
photosOfMembers: [{ type: ObjectId, ref:'Photos' }],
});
var photosSchema = new Schema({
sourceUrl: { type: String },
filePath: { type: String },
description: { type: String }
});
私たちの学校にはたくさんのクラブがあります。写真は学生のプロフィール写真です。一部の学生は複数のクラブに所属しているため、複数のクラブが 1 枚の写真を参照できます。
これらの写真は、外部の Web サイト (Facebook、Reddit、Quora など) から取得され、データベースに記録され、サーバーに保存されたファイルになります。
生徒がクラブに参加するたびに、外部の Web サイトから生徒の写真をクロールします。photosSchema.sourceUrl を使用して、写真がデータベースに存在するかどうかを確認し、存在しない場合は保存します。これにより、1 人の生徒に属する画像が重複する状況を防ぐことができます。
これはうまくいきます。
問題は、学生がクラブを離れたときに発生します。
- 問題:
その生徒がクラブのメンバーでなくなったら、その生徒の写真を削除したいです。彼/彼女がクラブに所属している場合、写真は残ります。
私のデータベースには何千ものレコードがあります-これを行うための最良の(最も効果的/効率的な)方法は何ですか.