UNPKG

@kitapp-developers/mongo-import-export

Version:

A modern CLI tool to import/export MongoDB collections to and from JSON or CSV β€” great for backups, migrations, and local development.

168 lines (109 loc) β€’ 3.94 kB
# mongo-import-export ![npm](https://img.shields.io/npm/v/@kitapp-developers/mongo-import-export?color=brightgreen&label=npm%20package) [![downloads](https://img.shields.io/npm/dw/@kitapp-developers/mongo-import-export.svg?label=downloads)](https://www.npmjs.com/package/@kitapp-developers/mongo-import-export) ![Node.js](https://img.shields.io/badge/node-%3E=20.0.0-blue) ![License](https://img.shields.io/npm/l/@kitapp-developers/mongo-import-export?color=blue) ![Build](https://img.shields.io/badge/build-passing-brightgreen) ![Platform](https://img.shields.io/badge/platform-cli-lightgrey) ## πŸš€ mongo-import-export A modern and powerful CLI tool to import and export MongoDB collections to and from JSON and CSV files. Perfect for backups, migrations, and local development. --- ## ✨ Features & Key Advantages This tool was built to make MongoDB data management as simple and effective as possible: ### 1. πŸŽ›οΈ Interactive & User-Friendly - A step-by-step **interactive prompt** guides you through the entire import or export process with clear questions β€” no need to remember complex commands. ### 2. πŸ“„ Multiple Format Support - **JSON** β€” preserves full MongoDB fidelity (e.g., `ObjectId`, `Date`) - **CSV** β€” ideal for spreadsheets like Excel or Google Sheets ### 3. πŸ›‘οΈ Data Integrity Guarantee - Each export includes a `manifest.sha256` with checksums - During import, checksums are verified - Ensures files haven’t been corrupted or tampered with ### 4. ⚑ High Performance with Streaming - Stream-based processing for JSON files - Handles datasets of **many gigabytes** - Keeps memory usage minimal β€” perfect for large-scale backups/migrations ### 5. 🧠 Intelligent Database Selection - If no database is specified in your connection string: - Connects to MongoDB server - Lists all available databases - Lets you choose interactively ### 6. πŸ”„ Advanced Conflict Resolution (During Import) - `upsert`: Replace if exists, insert if not - `skip`: Ignore documents that already exist - `insert` *(default)*: Fail on duplicate `_id` ### 7. πŸ“Š Clear Progress Indicators - Real-time progress bars per collection - Clean and informative CLI output - Helpful for long-running operations ### 8. βš™οΈ Configurable via `.env` File Set default values and skip repetitive input: ```env DATA_FOLDER=./data BATCH_SIZE=1000 LOG_LEVEL=debug LOG_FILE=mongo_script_log.txt ``` --- ## πŸ“¦ Installation **Global (recommended for CLI usage):** ```bash npm install -g @kitapp-developers/mongo-import-export@latest ``` **Local (as project dependency):** ```bash npm install @kitapp-developers/mongo-import-export@latest ``` --- ## πŸ› οΈ Usage Run the CLI: ```bash mongo-import-export ``` Or use without global install: ```bash npx mongo-import-export ``` The CLI will guide you through: 1. **Select Action:** Import or Export 2. **MongoDB URI:** ```bash mongodb://user:password@host:port/ ``` 3. **Select Format:** `json` or `csv` 4. **Database Selection:** - If URI includes a DB, it's used - Otherwise, select from list **For Import:** - Enter target DB name - Choose whether to clear collections - Choose conflict resolution strategy: Upsert / Skip / Insert --- ## πŸ§‘β€πŸ’» Example Workflow ```bash ? Select action: Import data into a database ? Enter MongoDB connection URI: mongodb://localhost:27017 ? Select data format: json ? Enter database name to import to: myNewDatabase ? Clear collections before importing? Yes ``` --- ## 🎬 Demo ![CLI demo](./assets/demo.gif) ## πŸ‘€ Configuration Optional `.env` file for defaults: ```env DATA_FOLDER=./data BATCH_SIZE=1000 LOG_LEVEL=info LOG_FILE=mongo_script_log.txt ``` Place `.env` in the same directory where you run the CLI. --- ## βš™οΈ Requirements 1. Node.js v20 or higher 2. MongoDB server accessible via the provided connection URL 3. Your smile 😊 --- ## πŸ“– License MIT License