mongoimport / mongoexport în MongoDB & NoSQL

Instrumente în linie de comandă Database Tools 100.0

mongoimport încarcă date din fișiere JSON sau CSV într-o colecție; mongoexport scoate documentele unei colecții în JSON sau CSV.

Sintaxă
mongoimport --db=<baza> --collection=<col> --file=<fisier> [--type=json|csv|tsv] [--headerline] [--jsonArray] [--mode=insert|upsert|merge]
mongoexport --db=<baza> --collection=<col> [--query=<json>] [--type=json|csv --fields=<campuri>] --out=<fisier>

Ce face mongoimport / mongoexport

mongoimport citește un fișier JSON (un document pe rând, sau un tablou cu --jsonArray), CSV sau TSV și inserează documentele. La CSV, --headerline folosește primul rând ca nume de câmpuri. Cu --mode=upsert actualizează documentele existente (după _id sau --upsertFields) în loc să dea eroare la duplicate.

mongoexport scrie documentele în format JSON (Extended JSON, câte un document pe rând) sau CSV; la CSV trebuie să dai lista de câmpuri cu --fields. --query exportă doar documentele care se potrivesc unui filtru. Spre deosebire de mongodump, aceste formate pot fi citite de alte programe (Excel, scripturi), dar nu păstrează perfect toate tipurile BSON.

Parametri

Parametru Descriere
--type json (implicit), csv sau tsv.
--headerline La import CSV/TSV: primul rând conține numele câmpurilor.
--jsonArray La import: fișierul este un tablou JSON.
--mode La import: insert, upsert, merge, delete.
--fields Câmpurile exportate (obligatoriu la CSV).
--query Filtrul de export, în JSON.

Ce returnează

Mesaje în terminal cu numărul de documente importate sau exportate.

Exemple

Exemplul 1: Importul unui catalog de produse din CSV

Fișierul are pe primul rând _id,nume,pret,stoc.

mongoimport --db=magazin --collection=produse --type=csv --headerline --file=produse.csv

Ieșire în terminal

2026-10-25T12:40:00.501+0300	connected to: mongodb://localhost/
2026-10-25T12:40:00.612+0300	3 document(s) imported successfully. 0 document(s) failed to import.

Exemplul 2: Actualizarea prețurilor dintr-un fișier JSON

Cu --mode=upsert, produsele existente sunt înlocuite, iar cele noi adăugate.

mongoimport --db=magazin --collection=produse --mode=upsert --jsonArray --file=preturi.json

Ieșire în terminal

2026-10-25T12:42:10.020+0300	connected to: mongodb://localhost/
2026-10-25T12:42:10.088+0300	2 document(s) imported successfully. 0 document(s) failed to import.

Exemplul 3: Exportul comenzilor livrate în CSV

Doar câmpurile date, doar documentele care se potrivesc filtrului.

mongoexport --db=magazin --collection=comenzi --query='{"status": "livrata"}' --type=csv --fields=_id,client,total --out=livrate.csv

Ieșire în terminal

2026-10-25T12:45:31.207+0300	connected to: mongodb://localhost/
2026-10-25T12:45:31.240+0300	exported 2 records

Greșeli frecvente

  • Fără --mode=upsert, a doua rulare a aceluiași import dă erori de cheie duplicată pentru fiecare _id existent.
  • La CSV, tipurile se ghicesc: un cod poștal ca 070000 poate deveni numărul 70000. Folosește --columnsHaveTypes cu --fields='cod.string()' pentru control.
  • Nu folosi mongoexport ca backup: datele, datele calendaristice și tipurile numerice pot ieși diferit. Pentru backup folosește mongodump.

Comenzi înrudite

  • mongodump / mongorestore: mongodump face o copie de siguranță binară (BSON) a bazelor de date; mongorestore o încarcă înapoi, pe același server sau pe altul.
  • bulkWrite(): Trimite mai multe operații de scriere (inserări, actualizări, ștergeri) către o colecție într-o singură cerere.
  • upsert: true și $setOnInsert: Cu upsert: true, updateOne actualizează documentul găsit sau, dacă nu există, îl creează; $setOnInsert scrie câmpuri doar la creare.