不安分的黑娃
踏踏实实,坚持学习,慢慢就懂了~

MongoDB 提供的工具

官网

https://www.mongodb.com/

工具

MongoDB 提供了一些工具,:

  • MongoDB Compass: MongoDB数据库可视化工具(类似PL/SQL)
  • MongoDB Shell : 连接配置数据库
  • MongoDB Database Tools:包含了mongoimportmongoexport,mongodump等工具
    image

下载地址

https://www.mongodb.com/try/download/tools

MongoDB Database Tools

官方文档:https://docs.mongodb.com/database-tools/?_ga=2.29559871.1661032572.1642390415-20619496.1636351487

数据库工具提供了操作数据库的一些脚本:

  • 二进制导入导出
    • mongodump : 将mongod 实例内容以二进制格式导出
    • mongorestore : 转储当前数据库数据到另一个数据库
    • bsondump : BSON dump文件转化为JSON
  • 数据导入导出
    • mongoimport : 导入扩展名为JSON,CSV或TSV的导出文件的内容
    • mongoexport: 以JSON格式或CSV格式从mongod实例中导出数据
  • 诊断工具
    • mongostat: 提供一个显示当前正在运行的mongod实例的状态的视图
    • mongotop : 提供一个显示mongod实例读取和写入数据花费的时间的视图
  • GridFS工具
    • mongofile : 支持在GridFS对象中操作存储在MongoDB实例中的文件。

脚本

1.使用 mongoexport 导出某个任务号的JSON数据

#!/bin/bash
echo "校验参数..."
taskNo=$1
if [ -z $taskNo ]
then
   echo "taskNo 不允许为空!"
   exit 2
fi
echo "export taskNo[${taskNo}] hdmap data ..."
# 日期
cur_date=`date +%Y%m%d%H%M%S`
mongo_db_tool_dir="/home/public/Soft/mongodb-5.0.4"
# 保存路径 
save_path="/home/public/Soft/mongodb-5.0.4/hdmap_data_export/${cur_date}"
# 创建保存路径
mkdir -p ${save_path}
# 循环数组
for table in "my_task" "my_task_detail" "my_task_rel"
do
    echo "start export table[${table}] data to ${save_path}/${table}.json"
    if [ ${table} = "my_task_detail" ] || [ ${table}  = "my_task_rel" ]
    then
        # 查询条件为tasknos数组包含taskNo的数据
        ${mongo_db_tool_dir}/tool/bin/mongoexport --host=127.0.0.1 --port=27018 --db=task_db --collection=${table} --type=json --jsonArray --query='{"tasknos":{"$all":["'${taskNo}'"]}}' --out=${save_path}/${table}.json
        if [  $? -ne 0 ]
        then
            echo "export table [${table}] failed!"
        else
            echo "export table [${table}] success."
        fi
    else
          # 查询条件为task_no为 taskNo的数据
        ${mongo_db_tool_dir}/tool/bin/mongoexport --host=127.0.0.1 --port=27018 --db=task_db  --collection=${table} --type=json --jsonArray --query='{"task_no":"'${taskNo}'"}'  --out=${save_path}/${table}.json
        if [  $? -ne 0 ]
        then
            echo "export table [${table}] failed!"
        else
            echo "export table [${table}] success."
        fi
    fi
done
echo "export hdmap data over."
posted on 2022-02-14 15:31  不安分的黑娃  阅读(478)  评论(0编辑  收藏  举报