をクリーンアップします。ユーザーが「タグ」と呼ばれる配列がある場合はマングースの移入と死んで参照()
var User = new Schema({
email: {
type: String,
unique: true,
required: true
},
tags: [{
type: mongoose.Schema.Types.ObjectId,
ref:'Tag',
required: true
}],
created: {
type: Date,
default: Date.now
}
});
を、私は、クエリの移入(「タグ」)を実行します。
User.findById(req.params.id)
.populate("tags")
.exec(function(err, user) { ... });
を
リスト内のいずれかのタグが実際に削除されている場合、この「参照」を「タグ」で削除する方法はありますか?
現在、返されたユーザオブジェクトは、の結果を返します。実際に存在するタグだけがtags配列内にあります...しかし、mongodbの基礎となるドキュメントを見ると、まだ配列内にdead tag idが入っています。
理想的には、これらの参照を遅延して削除したいと考えています。誰もがこれを行うための良い戦略を知っていますか?
削除時に各ユーザーからタグを削除する必要はありません。ユーザーが次にフェッチされたときに値を設定します。 – Garett
@ガレットしかし、なぜですか? – Camo
私は、何百万人ものタグを付けられたユーザーがいるデータベースを持っています。タグがシステムから削除されるたびに時間をかけて浄化される一時的な参照が残っています。 – Garett