環境:
- MongoDB 4.0.10
- Docker
檢視MongoDB版本指令:db.version();
背景:最近在處理MongoDB的一些資料,不過因為安全問題,是以端口沒對外開放出來,是以不用使用比如Navicat這些用戶端軟體,是以執行腳本就要到指令視窗執行,執行腳本不長還好,太長的話,複制到shell視窗一大串要很長時間
因為裝在docker裡,是以直接使用指令,先檢視MongoDB鏡像ID
docker ps
找到MongoDB的鏡像後,進入鏡像,
0ac56ae108c0
為容器ID
docker exec -it 0ac56ae108c0 bash
因為要執行一大串的腳本,黏貼到shell視窗裡,就要很長時間,是以問題來了,直接複制一大串代碼執行的方法太慢了,隻能看看能不能用指令執行檔案,将代碼弄到一個js檔案裡,然後用指令執行
先從MongoDB資料庫導出js腳本,然後在js腳本檔案裡,在其最前面加上連接配接資料庫的代碼:
conn = new Mongo("127.0.0.1:27017");
db = conn.getDB("test");
然後儲存,使用docker指令複制js檔案到MongoDB容器裡
docker cp /opt/test.js 0ac56ae108c0:/opt/test.js
# 到/opt目錄
cd /opt
# 執行js腳本
mongo test.js