2015-04-21 24 views
6

Sto avendo DB quale nome è "Progetto" e la raccolta che nome è "campione", quindi ho inserito un file JSON utilizzando il comando mongoimport.Mongoimport json aggiornamento o sovrascrittura del file ..?

Ora ho modificato lo stesso file JSON. Pertanto, se si desidera importare lo stesso file JSON nella raccolta, il problema si presenta in questo modo, poiché vengono create più istanze e non è in corso alcun aggiornamento.

C'è un modo per aggiornare o sovrascrivere i dati già presenti in mongodb utilizzando il comando mongoimport?

Si noti che ho anche provato ad utilizzare --mode=upsert bandiera:

./mongoimport --db Project --collection sample --mode=upsert --file /home/rule.json 

risposta

9

Per MongoDB v3.x,

--mode=upsert 
4

comportamento predefinito dice saltare se già esiste modo di default non ci vorrà sovrascrivere i dati esistenti.

Ma è possibile aggiornarlo utilizzando il flag --upsert.

+0

ok, voglio cancellare e reimportare quindi se uso 'upsert' è buono per me? – Mercer

+0

è possibile utilizzare upsert che sovrascriverà l'esistente. (cancella + importa = sovrascrivi con nuovi dati.) Fammi sapere se hai bisogno di qualcosa di diverso. –

+1

non funziona uso --upsert alla fine della mia riga di comando ma quando faccio un db.stats() il numero di oggetti aumenta – Mercer

0

--drop bandiera Inoltre può essere usato insieme a comando mongoimport sovrascrivere/aggiornare i dati esistenti.

--drop 


./mongoimport --db Project --collection sample --drop --file /home/UCSC_rule.json 

ho dato questa soluzione perché ho provato con --upsert bandiera, ma non ho potuto vedere eventuali modifiche dei dati esistenti invece nuova istanza è stato creato.

Problemi correlati