之前提到要研究的,終於想起來補上
dotnet add package MongoDB.Extensions.Migration
public class User : IVersioned
{
    [BsonId]
    public ObjectId Id { get; set; }
    [BsonElement("username")]
    public string Username { get; set; } = null!;
    [JsonIgnore]
    public string Password { get; set; } = null!;
    [BsonElement("version")]
    public int Version { get; set; } = 2;
}
public class ReviseUserNameMigration : IMigration
{
    public int Version => 2;
    public void Up(BsonDocument doc)
    {
        if (doc.Contains("account"))
        {
            doc["username"] = doc["account"];
            doc.Remove("account");
        }
        // Update Version
        doc["version"] = Version;
    }
    public void Down(BsonDocument doc)
    {
        if (doc.Contains("username"))
        {
            doc["account"] = doc["username"];
            doc.Remove("username");
        }
        doc["version"] = Version - 1;
    }
}
app.UseMongoMigration(m => m
    .ForEntity<User>(e => e
        .AtVersion(2)
        .WithMigration(new ReviseUserNameMigration())));
Writing Migrations for MongoDB in C#
總覺得這系列好難收尾阿,居然只剩一天了![]()