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_idexistent. - La CSV, tipurile se ghicesc: un cod poștal ca
070000poate deveni numărul 70000. Folosește--columnsHaveTypescu--fields='cod.string()'pentru control. - Nu folosi
mongoexportca backup: datele, datele calendaristice și tipurile numerice pot ieși diferit. Pentru backup foloseștemongodump.
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.