Below you will find pages that utilize the taxonomy term “MongoDB”
Posts
MongoDB - Creating a MongoDB replica set in single Docker container
透過 Docker 去起 MongoDB replica set,多半網路上的做法都是用多個容器去做,這邊筆者考量測試與開發上的便利性,試著用一個容器去起 MongoDB replica set。
Docker compose 檔如下:
version: '3' services: mongo: image: mongo:4.2.2 container_name: mongo ports: - "27017:27017" - "27027:27027" - "27037:27037" volumes: - ./mongodb/data:/mongodb/data - ./mongodb/log:/mongodb/log - ./mongodb/mongod.yml:/mongodb/mongod.yml environment: # provide your credentials here - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=pass.123 command: sh -c ' mkdir -p /mongodb/data/db1 /mongodb/data/db2 /mongodb/data/db3 /mongodb/log/db1 /mongodb/log/db2 /mongodb/log/db3 && mongod --config /mongodb/mongod.yml --port 27017 --dbpath /mongodb/data/db1 --logpath /mongodb/log/db1/mongod.log && mongod --config /mongodb/mongod.yml --port 27027 --dbpath /mongodb/data/db2 --logpath /mongodb/log/db2/mongod.
read morePosts
MongoDB - Creating a MongoDB replica set using Docker
要用 Docker 測試 MongoDB replica set 我們要先建立 Docker network。
docker network ls docker network create mongo-cluster docker network ls 然後起第一個 MongoDB 的 Docker 容器,設定使用 Docker network,並用 –replSet 參數指定 replSet 的名稱。
docker run -p 27017:27017 --name mongo1 --net mongo-cluster mongo mongod --replSet rs0 接著起第二個 MongoDB 的 Docker 容器,一樣設定使> 用 Docker network,且用 –replSet 參數指定 replSet 的名稱。
docker run -p 27027:27017 --name mongo2 --net mongo-cluster mongo mongod --replSet rs0 最後起第三個 MongoDB 的 Docker 容器,一樣設定使用 Docker network,且用 –replSet 參數指定 replSet 的名稱。
read morePosts
MongoDB Compass - Install with Homebrew
要使用 Homebrew 安裝 MongoDB Compass,可以調用如下命令:
brew cask install mongodb-compass 安裝完可以透過應用程式這邊啟動 MongoDB Compass。
read morePosts
MongoDB - Clear system.profile collection
在做 MongoDB 的 Profiling 時,有時我們會需要清除 system.profile collection 內的資料。
像是這邊筆者已經有資料在 system.profile collection 內。
db.system.profile.count() 要將 system.profile collection 清除,先要將 Profiler 關閉,也就是透過 db.setProfilingLevel 將 Profiling 等級設為 0。
db.setProfilingLevel(0) 然後 drop system.profile collection。
db.system.profile.drop() Link profiling - How to delete system.profile collection from a MongoDB? - Stack Overflow
read morePosts
MongoDB - Check profiling level and status
MongoDB 在設定好 Profiler 後,可用 db.getProfilingLevel 查驗設定的 Profiling 層級。
db.getProfilingLevel() 或是用 db.getProfilingStatus 查驗整個 Profiling 設定。
db.getProfilingStatus()
read morePosts
MongoDB - Enable and configure database pofiling
要設定或啟用 MongoDB Profiler 功能去能監控較慢的運行,可先進入 MongoDB。
mongo 切到指定資料庫。
use $db 透過 db.setProfilingLevel 設定 Profiling 的層級與定義耗費多少毫秒是慢的處理。
db.setProfilingLevel($level, $slowms) Profiling 的層級如下:
Level Description 0 The profiler is off and does not collect any data. This is the default profiler level. 1 The profiler collects data for operations that take longer than the value of slowms. 2 The profiler collects data for all operations. 如果層級設為 0,則會停止 Profiling;設為 1,則會抓取比 slowms 久的操作;設為 2,則會抓取所有操作。
設定完實際運行程式,MongoDB Profiler 就會依 Profiling 的設定幫我們抓出慢的操作。
read more