2017-05-11 2 views
0

私はmongoが1時間ごとに期限切れになる 'createdAt'という日付のコレクションを持っています。また、各ユーザーが設定したマーカーのObjectIdのリストを持つユーザーのコレクションもあります。 MongoDBがマーカーを期限切れにしたときに、ユーザーのマーカーリストからマーカーIDを削除する方法はありますか?MongoDB TTL Collection

答えて

0

TTL Index - Delete Operations

を引用のmongodでバックグラウンドスレッドは、インデックスの値を読み込み、コレクションから期限切れの文書を削除します。

TTLスレッドがアクティブな場合、db.currentOp()の出力またはデータベースプロファイラによって収集されたデータの削除操作が表示されます。

プロセスにフックする方法はありません。

あなたが行うことができるのは、ユーザー側でマーカーの一覧を保持しなくても、マーカー自体にユーザーIDを保持することです(マーカーの参照とクエリの保存方法に応じて適切なインデックスを追加します)。こうすることで、ユーザーのマーカーを迅速に取得できるようになり、リスト内の古くなったエントリを気にする必要がなくなり、追加のクエリが発生します。