Je ne souscris pas à ta distinction entre update et replace.
Je tente une transposition dans le langage de programmation C. Selon tes critères, le code a = a + 1; serait un replace du document-variable a. Idem pour a = f(a);. Avec le vocabulaire MongoDB, ce serait un update de a, alors que selon toi un update correspond à a[0] = 0;. Mais cette dernière opération n'est pas prévue dans MongoDB, puisque le document est un élément atomique du stockage. À partir du moment où on intègre ce principe, la dénomination update me semble justifiée : on modifie un document de la même façon qu'on modifie une variable atomique.
C'est peut-être plus clair quand on connait le principe sous-jacent. On présuppose que l'application cliente fonctionne à la façon d'un ORM classique : on interroge la base pour récupérer des données structurées en "modèles", on les traite côté client, on sauvegarde chaque modèle modifié. En pseudo-code :
post = Post.find(postid) # fetch from DB
post.addcomment(...)
post.save() # write back to DB (update)
AMHA, MongoDB est particulièrement adapté à ce mode de fonctionnement basé sur un ORM à la Active Record.
[^] # Re: Première appréciation
Posté par rogo . En réponse à la dépêche MongoDB sort en version 2.2. Évalué à 2.
Je ne souscris pas à ta distinction entre update et replace.
Je tente une transposition dans le langage de programmation C. Selon tes critères, le code
a = a + 1;serait un replace du document-variablea. Idem poura = f(a);. Avec le vocabulaire MongoDB, ce serait un update dea, alors que selon toi un update correspond àa[0] = 0;. Mais cette dernière opération n'est pas prévue dans MongoDB, puisque le document est un élément atomique du stockage. À partir du moment où on intègre ce principe, la dénomination update me semble justifiée : on modifie un document de la même façon qu'on modifie une variable atomique.C'est peut-être plus clair quand on connait le principe sous-jacent. On présuppose que l'application cliente fonctionne à la façon d'un ORM classique : on interroge la base pour récupérer des données structurées en "modèles", on les traite côté client, on sauvegarde chaque modèle modifié. En pseudo-code :
AMHA, MongoDB est particulièrement adapté à ce mode de fonctionnement basé sur un ORM à la Active Record.