假设我有一个整数文档。
当我尝试将值设置为3.5时,它仍然是整数:
db.users.update({}, {$set:{balance:3.5}})
如何将其更改为float / decimal?
答案 0 :(得分:1)
请检查update()语法。 update()的第一个参数始终是QUERY 不是UPDATE子句。
答案 1 :(得分:1)
我刚做了一些例子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。所以对于这种情况,我建议写单元测试。
希望这对你有所帮助。