キャッシュストアとしてキャップ付きコレクションを使用したいと思います。複合インデックス(キーと有効期限)を使用して選択する予定です。キャップ付きのコレクションから更新/削除することは不可能なので、新しい有効期限の新しいエントリを追加し、将来の有効期限のあるものを選択します。キャッシュされたコレクション - BsonId、一意性およびインデックス
1)クエリでQuery.GTE("expiry", DateTime.Now)
を使用する場合は、これをインデックス作成の最適な方法ですか?
cacheColl.EnsureIndex(new IndexKeysBuilder().Ascending("key").Descending("expiry"));
2)クラスに[BsonId]属性が必要ですか?私は "キー"はユニークではないことを知っています。レコードに一意のIDエントリが必要ですか?
3)キャッシュされたコレクションを使用する私の唯一の動機は、キャッシュの最終サイズ(ディスクとメモリの両方)を制限し、期限切れのキャッシュ項目を自分で削除する必要がないことです。定期的なコレクションとアイテムの更新/期限切れのアイテムの削除を好む理由はありますか?ドキュメントを削除しても、スペースが解放されていないことを読んでいます(コンパクトにする必要がありますか?)