MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment puis-je obtenir la date à laquelle une collection MongoDB a été créée à l'aide du pilote MongoDB C# ?

Autant que je sache, MongoDB ne garde pas trace des dates de création des collections. Cependant, il est très facile de le faire soi-même. Ajoutez une méthode simple, quelque chose comme celle-ci, et utilisez-la chaque fois que vous créez une nouvelle collection :

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

Ensuite, chaque fois que vous avez besoin des informations, interrogez simplement le collectionMetadata le recueil. Ou, si vous souhaitez utiliser une méthode d'extension comme dans votre exemple, procédez comme suit :

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