aggiornamento Bulk / upsert in MongoDB?
-
10-10-2019 - |
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
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:
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.