• [^] # Re: Première appréciation

    Posté par . 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-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.