MongoDB(68)如何使用mongoexport和mongoimport?

mongoexportmongoimport 是MongoDB提供的用于导出和导入数据的工具。mongoexport 用于将数据从MongoDB导出为JSON或CSV格式,而 mongoimport 用于将JSON、CSV或TSV格式的文件导入到MongoDB中。以下是详细的使用说明和示例代码。

1. mongoexport - 导出MongoDB数据

mongoexport 工具用于从MongoDB集合导出数据,可以导出为JSON或CSV格式。

1.1. 基本使用

导出特定集合的数据为JSON文件。

bash 复制代码
mongoexport --db your_database --collection your_collection --out /path/to/output/your_collection.json

1.2. 导出为CSV文件

指定要导出的字段。

bash 复制代码
mongoexport --db your_database --collection your_collection --type=csv --fields field1,field2,field3 --out /path/to/output/your_collection.csv

1.3. 使用选项

  • --host: 指定MongoDB服务器的主机地址。
  • --port: 指定MongoDB服务器的端口号。
  • --username--password: 用于需要身份验证的MongoDB实例。
  • --query: 使用JSON格式的查询条件导出特定数据。
  • --jsonArray: 导出为一个包含多个JSON对象的数组。
示例:带查询条件和身份验证的导出
bash 复制代码
mongoexport --db your_database --collection your_collection --query '{ "status": "active" }' --out /path/to/output/active_records.json --username your_username --password your_password

2. mongoimport - 导入MongoDB数据

mongoimport 工具用于将JSON、CSV或TSV格式的文件导入到MongoDB集合。

2.1. 导入JSON文件

bash 复制代码
mongoimport --db your_database --collection your_collection --file /path/to/input/your_collection.json

2.2. 导入CSV文件

指定要导入的字段。

bash 复制代码
mongoimport --db your_database --collection your_collection --type=csv --headerline --file /path/to/input/your_collection.csv

2.3. 使用选项

  • --host: 指定MongoDB服务器的主机地址。
  • --port: 指定MongoDB服务器的端口号。
  • --username--password: 用于需要身份验证的MongoDB实例。
  • --drop: 在导入数据前删除现有集合。
  • --jsonArray: 将输入文件作为包含多个JSON对象的数组进行导入。
示例:带身份验证和删除现有集合的导入
bash 复制代码
mongoimport --db your_database --collection your_collection --file /path/to/input/your_collection.json --drop --username your_username --password your_password

3. 结合 mongoexportmongoimport 的数据迁移脚本

3.1. 导出脚本

bash 复制代码
#!/bin/bash

# 配置参数
HOST="localhost"
PORT="27017"
DB_NAME="your_database"
COLLECTION_NAME="your_collection"
OUTPUT_PATH="/path/to/output"
DATE=$(date +%Y%m%d_%H%M%S)
OUT_FILE="${OUTPUT_PATH}/${COLLECTION_NAME}_${DATE}.json"

# 导出集合数据
mongoexport --host ${HOST} --port ${PORT} --db ${DB_NAME} --collection ${COLLECTION_NAME} --out ${OUT_FILE} --jsonArray

echo "Export completed: ${OUT_FILE}"

3.2. 导入脚本

bash 复制代码
#!/bin/bash

# 配置参数
HOST="localhost"
PORT="27017"
DB_NAME="your_database"
COLLECTION_NAME="your_collection"
INPUT_FILE="/path/to/input/your_collection_latest.json"

# 导入集合数据
mongoimport --host ${HOST} --port ${PORT} --db ${DB_NAME} --collection ${COLLECTION_NAME} --file ${INPUT_FILE} --drop --jsonArray

echo "Import completed from: ${INPUT_FILE}"

4. 常见使用场景和示例

4.1. 导出和导入特定字段

导出集合的部分字段为CSV
bash 复制代码
mongoexport --db your_database --collection your_collection --type=csv --fields field1,field2,field3 --out /path/to/output/your_collection.csv
将CSV文件导入到集合
bash 复制代码
mongoimport --db your_database --collection your_collection --type=csv --headerline --file /path/to/input/your_collection.csv

4.2. 导出和导入带查询条件的数据

导出满足条件的数据
bash 复制代码
mongoexport --db your_database --collection your_collection --query '{ "status": "active" }' --out /path/to/output/active_records.json --jsonArray
导入满足条件的数据
bash 复制代码
mongoimport --db your_database --collection your_collection --file /path/to/input/active_records.json --jsonArray

5. 备份和恢复的注意事项

  1. 数据一致性:在导出和导入数据时,确保数据的一致性,避免数据丢失或重复。
  2. 文件格式:确保导出的文件格式正确,导入时使用相同的格式选项。
  3. 身份验证:对需要身份验证的MongoDB实例,确保提供正确的用户名和密码。
  4. 数据验证:导入数据后,验证数据的完整性和正确性,确保导入过程没有发生错误。

总结

通过使用 mongoexportmongoimport 工具,可以高效地导出和导入MongoDB数据。结合脚本和定期备份策略,可以确保数据在不同环境之间的迁移和备份的高效和稳定。根据实际需求选择合适的选项和参数,确保导出和导入过程的高效和稳定。

相关推荐
楼田莉子2 小时前
仿Muduo的高并发服务器:Http协议模块
linux·服务器·c++·后端·学习
AI人工智能+电脑小能手11 小时前
【大白话说Java面试题】【Java基础篇】第32题:Java的异常处理机制是什么
java·开发语言·后端·面试
ltl11 小时前
Softmax 与概率分布:从分数到选择的桥
后端
刀法如飞12 小时前
Claude Code Skills 推荐:2026年最值得安装的10个AI技能
前端·后端·ai编程
IT_陈寒13 小时前
Vite热更新失效?你可能漏了这个小细节
前端·人工智能·后端
浮游本尊14 小时前
服务请求附件:从上传到预览、下载的实现详解
后端
程序员辉哥14 小时前
从零构建Agent智能体系列01-从零理解智能体
后端·openai·ai编程
客场消音器14 小时前
我用两周半 Vibe Coding 做了一个前额叶训练的微信小程序
前端·javascript·后端
杨凯凡15 小时前
【032】排查入门:jstack、heap dump、Arthas 初识
java·开发语言·后端
铁皮饭盒15 小时前
成为AI全栈 - 第4课:Drizzle ORM SQLite Elysia 数据库实战
前端·后端