2011-09-23 2 views

Répondre

1

Essentiellement, oui, vous pouvez. Il y a des implications, mais beaucoup moins que d'utiliser un ORM traditionnel. Avec Morphia, si votre objet persistant a une variable d'instance qui n'est pas définie, elle n'est pas incluse dans l'enregistrement dans mongo. Donc ajouter une autre variable d'instance est assez simple pour mongo de mapper rétroactivement les anciens enregistrements - ils obtiennent juste null pour cette variable (dans mon expérience). Maintenant, si votre application dépend absolument de la position, vous devrez mettre à jour ces 1000 enregistrements, mais en général, dans mon expérience, vous pouvez ajouter la variable d'instance et cela fonctionnera simplement, facile comme ça.

+0

venant de SQL il se sent juste bien de savoir que tous les 1000 sont les mêmes, ne sais pas .. Doit être une fourche pour dire à Mongo d'insérer il .. – Erik

0

Peut-être que cette page peut vous aider avec votre problème. http://code.google.com/p/morphia/wiki/Updating

+0

n'est pas seulement pour mettre à jour la variable d'instance – Erik

+0

mais en morphia/mongo si vous appelez save dans une UserData avec un nouveau champ, ce document sera sauvegardé avec ce champ. Si vous créez une méthode de mise à jour qui enregistre tous les documents d'une collection, avec un nouveau champ, cela vous corrige le problème; –

+0

cela semble prometteur, comment puis-je faire une méthode de mise à jour, j'ai lu quelque part à ce sujet, mais ne trouve pas le chemin. Postez votre commentaire comme une réponse afin que je puisse l'accepter, si vous avez la solution je serai heureux – Erik

2

si le UserData est ressembler,

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

et vous avez ajouté 1000 documents dans cette collection.

Maintenant, vous en voulez un champ plus appelé position,

Il suffit de faire cela,

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

Dans l'ancien 1000 documents, la valeur de la position sera null.

C'est la puissance de Mongo, vous pouvez étendre votre structure de données quand vous le voulez.

+0

oui c'est puissant – Erik

Questions connexes