2011-07-04 6 views
16

Je suis nouveau à mongodb et que je passe par le tutoriel pour Java & Mongodb. Je remarque qu'il y a put() et append() pour BasicDBObject et j'ai regardé l'API, put() inherit et append() est un built-in pour BasicDBObject. Est-ce que quelqu'un est ce qui est différent, comme la vitesse d'accès? Merci!MongoDB Java API: put() vs append()

Répondre

20

De l'BasicDBObject sources:

public BasicDBObject append(String key , Object val){ 
    put(key , val); 
    return this; 
} 

put() renvoie la valeur précédente, le cas échéant. append() appelle put() en interne et renvoie l'instance BasicDBObject elle-même. Essentiellement, append() est un plus fluent interface pour put(). Il vous permet de faire quelque chose comme ceci:

BasicDBObject o = new BasicDBObject().append("One", 1).append("Two", 2).append("Three", 3); 

En ce qui concerne la performance va, la machine virtuelle Java sera soi-disant méthodes inline comme append() si elles sont utilisées assez souvent quelque part. De mon expérience et un peu de profilage, cependant, ce n'est pas toujours vrai et vous êtes lié à gagner un peu de vitesse en utilisant directement put() et en sauvant la JVM la conjecture. Cela dit, la lisibilité du code doit toujours être une priorité.

Il vous suffit d'écrire votre code lorsque vous vous sentez à l'aise, et de comparer/profiler par la suite pour trouver les optimisations possibles. L'optimisation prématurée est une tentation qui doit être évitée à tout prix ...