MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie erhalte ich das Datum, an dem eine MongoDB-Sammlung mit dem MongoDB-C#-Treiber erstellt wurde?

Soweit ich weiß, verfolgt MongoDB keine Sammlungserstellungsdaten. Es ist jedoch sehr einfach, dies selbst zu tun. Fügen Sie eine einfache Methode wie diese hinzu und verwenden Sie sie, wenn Sie eine neue Sammlung erstellen:

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

Wenn Sie dann die Informationen benötigen, fragen Sie einfach die collectionMetadata ab Sammlung. Oder, wenn Sie eine Erweiterungsmethode wie in Ihrem Beispiel verwenden möchten, gehen Sie so vor:

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