如何避免更改MongoDB中的字段数据类型?

时间:2015-03-19 11:30:02

标签: java mongodb spring-data nosql

我是MongoDB的新手,我正在使用Spring Data MongoDB开始一个新项目。

我创建了一个简单的模型POJO,并在products集合中插入了一些文档:

@Document(collection="products")
public class Product {
    @Id
    private String id;
    private String name;
    private double price;
    private int quantity;

    // ...
}

在我的数据库字段中,正确映射了类型:

  • nameString
  • priceDouble
  • quantityInt32

但是做了一些测试我尝试通过quantity修饰符增加$inc字段:

db.products.update({"name" : "A product"}, {"$inc" : {"quantity" : 1}});

现在quantity字段类型已更改为Double

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

感谢 Neil Lunn 评论,我意识到为quantity字段保留相同数据类型的方法是明确指定增量金额的类型。

在这种情况下,我有Int32所以我可以使用此代码来更新它:

db.products.update({"name" : "A product"}, {"$inc" : {"quantity" : NumberInt(1)}});