2011-07-04 21 views
16

Soy nuevo en mongodb y mientras voy a través del tutorial para Java & Mongodb. Observé que hay put() y append() para BasicDBObject y eché un vistazo a la API, put() inherit y append() es un built-in para BasicDBObject. ¿Alguien qué es diferente, como la velocidad de acceso? ¡Gracias!API de MongoDB Java: put() vs append()

Respuesta

20

Desde el BasicDBObject sources:

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

put() devuelve el valor anterior, en su caso. append() llama internamente al put() y devuelve la instancia de BasicDBObject. Básicamente, append() es un más fluent interface para put(). Se le permite hacer algo como esto:

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

En cuanto al rendimiento, la JVM supuestamente métodos en línea como append() si se utilizan con frecuencia suficiente en alguna parte. Sin embargo, desde mi experiencia y un poco de creación de perfiles, eso no siempre es cierto y es probable que ganes un poco de velocidad al usar put() directamente y guardar las conjeturas de la JVM.

Dicho esto, la legibilidad del código siempre debe ser una prioridad. Simplemente escriba su código como se siente cómodo, y punto de referencia/perfil después para encontrar posibles optimizaciones. La optimización prematura es una tentación que debe evitarse a toda costa ...