캐핑 된 콜렉션을 캐시 스토어로 사용하고 싶습니다. 복합 인덱스 (키 및 만료일)를 사용하여 선택하려고합니다. 제한된 컬렉션에서 업데이트/삭제할 수 없으므로 새로운 만료 날짜가있는 항목을 추가하고 만료일이있는 항목을 선택합니다.캐핑 한 콜렉션 - BsonId, 유일성 및 인덱스
1) 쿼리에서 Query.GTE("expiry", DateTime.Now)
을 사용할 경우 인덱스를 만드는 최적의 방법입니까?
cacheColl.EnsureIndex(new IndexKeysBuilder().Ascending("key").Descending("expiry"));
2) 클래스에 [BsonId] 속성이 필요합니까? 나는 "열쇠"가 유일하지 않다는 것을 안다. 레코드에 고유 한 id 항목이 있어야합니까 ??
3) 캐시 된 모음을 사용하는 유일한 동기는 캐시의 최종 크기 (디스크와 메모리 모두)를 제한하고 만료 된 캐시 항목을 직접 삭제하지 않아도된다는 것입니다. 일반 컬렉션을 선호하고 항목을 업데이트하거나 만료 된 것을 삭제할 이유가 있습니까? 문서를 지우더라도 공간이 해제되지 않았 음을 알았습니다. (압축해야합니까?)