據我所知,MongoDB不會跟蹤收集創建日期。但是,自己做這件事真的很容易。添加一個簡單的方法,這樣的事情,並使用它,只要你創建一個新的集合:
public static void CreateCollectionWithMetadata(string collectionName)
{
var result = _db.CreateCollection(collectionName);
if (result.Ok)
{
var collectionMetadata = _db.GetCollection("collectionMetadata");
collectionMetadata.Insert(new { Id = collectionName, Created = DateTime.Now });
}
}
然後,每當你需要的信息只是查詢collectionMetadata
集合。或者,如果你想在你的例子使用一個擴展方法一樣,做這樣的事情:
public static DateTime GetCreatedDate(this MongoCollection collection)
{
var collectionMetadata = _db.GetCollection("collectionMetadata");
var metadata = collectionMetadata.FindOneById(collection.Name);
var created = metadata["Created"].AsDateTime;
return created;
}
不能我們從OPLOG這些信息? –
oplog隨着時間的推移而循環,所以除非您剛好在創建時看到它,否則它就不在那裏。 –