1

我是新手,

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

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

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

查看维基Morphia但找不到任何东西

4

3 回答 3

2

如果UserData看起来像,

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

并且您在此集合中添加了 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 的强大功能,您可以随时扩展数据结构。

于 2011-09-24T05:50:22.267 回答
1

基本上,是的,你可以。有一些影响,但比使用传统的 ORM 要少得多。

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

现在,如果您的应用程序现在完全依赖于 Position,您将不得不更新这 1000 条记录,但根据我的经验,通常您可以添加实例变量,它就可以工作,就这么简单。

于 2011-09-23T20:42:17.943 回答
0

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

于 2011-09-23T20:40:04.027 回答