MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como obtenho a data em que uma coleção do MongoDB foi criada usando o driver MongoDB C#?


Até onde eu sei, o MongoDB não acompanha as datas de criação da coleção. No entanto, é muito fácil fazer isso sozinho. Adicione um método simples, algo assim, e use-o sempre que criar uma nova coleção:
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 });
    }
}

Então, sempre que precisar das informações, basta consultar o collectionMetadata coleção. Ou, se você quiser usar um método de extensão como no seu exemplo, faça algo assim:
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;
}