Domanda

E 'possibile fare l'aggiornamento di massa / upsert (non insert) in MongoDB?

Se sì, per favore mi punto a tutti i documenti relativi a questo?

Grazie

È stato utile?

Soluzione

È possibile utilizzare il programma da riga di comando mongoimport che dovrebbe essere nel vostro MongoDB bin dir ...

Ci sono due opzioni si vorrà guardare in uso a upsert ...

  

- inserto upsert o   aggiornare gli oggetti che già esistono
  campi --upsertFields arg separato da virgole per la query   parte di                             upsert. È necessario assicurarsi che questo è indicizzato

Più informazioni su: http://www.mongodb.org/display/ DOCS / Import + Export + Strumenti

O semplicemente fare ...

$ mongoimport --help

Altri suggerimenti

mongo può eseguire il file .js. si può spingere tutto si aggiorna comandi in un file js.

t.js

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

dunque, mongo 127.0.0.1/test t.js

Aggiornamenti di massa può essere fatto anche in lotti come si trova nella documentazione:

MongoDB Metodi Bulk

Io uso questi per file CSV di importazione che ho bisogno di massaggiare un po 'prima di importare i dati. Il suo un po 'lento quando si tratta di aggiornamenti, ma ha i miei aggiornamenti 50K di documenti in circa 83 secondi, che è molto più lento di comando mongoimport.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top