Я только что сделал несколько примеров c #:
public class Test
{
[BsonId]
public string Id { get; set; }
public int SomeIntegerField { get; set; }
}
[TestMethod]
public void TypesTest()
{
var db = MongoRead.Instance;
var collection = db.Database.GetCollection("test");
var id = Guid.NewGuid().ToString();
var test = new Test() { SomeIntegerField = 5, Id = id };
collection.Insert(test); //here type of SomeIntegerField in mongodb Integer
//but after update type become Float64
collection.Update(Query.EQ("_id", id), Update.Set("SomeIntegerField", 3.5));
}
Но если вы попытаетесь автоматически десериализовать тестовый класс обратно после обновления, он выдаст ошибку, потому что тип SomeIntegerField будет Float64.Поэтому для таких ситуаций я предлагаю написать модульные тесты.
Надеюсь, это поможет вам.