2011-04-11 12 views
6

Estoy intentando actualizar un documento mongo, usando PHP y la función update(). Sin embargo, cuando hago esto, reemplaza el documento TODO con el valor que quería actualizar. ¿Cómo puedo arreglar esto?PHP MongoDB, actualice el documento sin borrar el resto

El código que he escrito hasta ahora: http://twaddlr.com/view/73 (desplácese hacia abajo para la función de "actualización" Es un contenedor de base de datos que estoy escribiendo para mi sitio.)

Respuesta

16

La clave es usar $set en la actualización , p.ej en lugar de esto (utilizando la sintaxis de JavaScript siento aquí, no está seguro acerca de la sintaxis controlador PHP exacta):

db.my_collection.update({hello: "world"}, {foo: "bar"}) 

haces

db.my_collection.update({hello: "world"}, {$set: {foo: "bar"}}) 

Si utiliza $set, sólo las propiedades que especifique será actualizada, el documento completo no será reemplazado

Puede leer más sobre esto en la documentación, aquí: http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperations

Editar: mirar tu código, esto es exactamente lo que se hace en el método addRow. Simplemente haga lo mismo en update.

+0

Gracias! Funciona bien. ¿Cómo voy a hacer una función "addRow" luego? No quiero reemplazar en ese caso; Quiero agregar una fila (como ... si tuviera una matriz de comentarios o posts) – user697108

+0

Use 'insert' y no' update'. 'insert' es para agregar,' update' es para actualizar. – Theo

Cuestiones relacionadas