MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come ottengo la data in cui è stata creata una raccolta MongoDB utilizzando il driver C# MongoDB?

Per quanto ne so, MongoDB non tiene traccia delle date di creazione della raccolta. Tuttavia, è davvero facile farlo da soli. Aggiungi un metodo semplice, qualcosa del genere, e usalo ogni volta che crei una nuova raccolta:

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 });
    }
}

Quindi, ogni volta che hai bisogno delle informazioni, esegui una query su collectionMetadata collezione. Oppure, se vuoi utilizzare un metodo di estensione come nel tuo esempio, fai qualcosa del genere:

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;
}