Java: Morphia, насколько легко обновить коллекцию новыми значениями полей - PullRequest
1 голос
/ 24 сентября 2011

Я новичок в этом,

Допустим, у меня есть коллекция "UserData", и в UserData есть 1000 документов.

Теперь мне нужно добавить еще одно поле с именем "position".

Могу ли я сделать это, как? Или как это работает?

Глядя на вики Морфия но ничего не могу найти

Ответы [ 3 ]

2 голосов
/ 24 сентября 2011

, если 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, вы можете расширять свою структуру данных, когда захотите.

1 голос
/ 24 сентября 2011

По сути, да, вы можете.Это имеет значение, но значительно меньше, чем при использовании традиционного ORM.

В Morphia, если ваш постоянный объект имеет переменную экземпляра, которая не установлена, он не включается в запись в монго.Поэтому добавить другую переменную экземпляра довольно просто для mongo, чтобы задним числом отобразить старые записи - они просто получают null для этой переменной (по моему опыту).

Теперь, если ваше приложение теперь абсолютно зависит от позиции, которую вы будете иметьобновить эти 1000 записей, но в целом, по моему опыту, вы можете добавить переменную экземпляра, и она будет просто работать, как это просто.

0 голосов
/ 24 сентября 2011

Возможно, эта страница поможет вам решить вашу проблему. http://code.google.com/p/morphia/wiki/Updating

...