2010-12-14 25 views
9

¿Es posible hacer una actualización masiva/insertar (no insertar) en MongoDB?Actualización masiva/upsert en MongoDB?

En caso afirmativo, indíqueme cualquier documento relacionado con esto?

Gracias

+0

Esto aún no es posible: ver https://jira.mongodb.org/browse/SERVER-4004 –

Respuesta

4

Puede utilizar el programa de línea de comandos mongoimport que debería estar en su MongoDB bin dir ...

Hay dos opciones que usted desee ver en el uso upsert ...

inserción --upsert o actualizar objetos que ya existen
--upsertFields arg comm a-campos separados para la consulta parte de la upsert. Usted debe asegurarse de que esto está indexado

Más información aquí: http://www.mongodb.org/display/DOCS/Import+Export+Tools

O simplemente hacer ...

$ mongoimport --help 
+0

Nota: actualmente --upsert no está documentado en los documentos en línea (necesitan ser actualizados) ... pero lo verás desde la línea de comandos --help. –

1

actualizaciones masivas también se puede hacer en lotes que se encuentran en la documentación:

MongoDB Bulk Methods

Los uso para importar archivos CSV que necesita dar un masaje un poco antes de importar los datos. Es un poco lento cuando se trata de actualizaciones, pero hizo mis actualizaciones de documentos 50K en unos 83 segundos, que es mucho más lento que el comando mongoimport.

1

mongo puede ejecutar el archivo .js. puede enviar todos los comandos de actualización en un archivo js.

t.js

db.record.update({md5:"a35f10a8339ab678612d1f86be08b81a"},{$set:{algres:[]}},false,true); 
db.record.update({md5:"a35f10a8339ab678612d1f86be08b81b"},{$set:{algres:[]}},false,true); 

continuación, mongo 127.0.0.1/test t.js

Cuestiones relacionadas