Java:Morphia用新字段值更新Collection是多么容易

时间:2011-09-23 20:16:13

标签: java morphia

我是新手,

假设我有Collection“UserData”并且UserData中有1000个文档。

现在我需要再添加一个名为“position”的字段。

我可以这样做,怎么做?或者它是如何工作的?

查看维基Morphia但找不到任何内容

3 个答案:

答案 0 :(得分:2)

如果UserData看起来像,

@Entity
UserData{
@Id
private ObjectId id;
private String name;
private int age;
}

并且您已在此Collection中添加了1000个文档。

现在,您还需要一个名为position的字段,

就这样做,

@Entity
UserData{
@Id
private ObjectId id;
private String name;
private int age;
private String position;//Add the field like this.
}

在旧的1000份文件中,职位的价值为null

它具有mongo的强大功能,您可以根据需要扩展数据结构。

答案 1 :(得分:1)

基本上,是的,你可以。这有影响,但远远低于使用传统的ORM。

使用Morphia,如果持久化对象具有未设置的实例变量,则它不包含在mongo中的记录中。因此,为mongo添加另一个实例变量非常简单,可以追溯映射旧记录 - 他们只是获得null该变量(根据我的经验)。

现在,如果您的应用程序现在绝对依赖于位置,您将不得不更新这1000条记录,但总的来说,根据我的经验,您可以添加实例变量,它只是工作,这很容易。

答案 2 :(得分:0)

也许这个页面可以帮助您解决问题。 http://code.google.com/p/morphia/wiki/Updating