목록Mongo (4)
without haste but without rest
제일 자주쓰는 포맷 sudo docker run -itd \ --name mongo-express \ -p 8081:8081 \ -e ME_CONFIG_MONGODB_SERVER="host" \ -e ME_CONFIG_MONGODB_PORT=27017 \ -e ME_CONFIG_MONGODB_ADMINUSERNAME="root" \ -e ME_CONFIG_MONGODB_ADMINPASSWORD="password" \ mongo-express 몽고디비 옵션은 -e ME_CONFIG_MONGODB_SERVER 와 같이 파라미터 값만 붙여주면된다. 더 자세한 정보는 docker hub mongo-express 이미지 참조
업무 중 레플리카 셋의 primary 노드의 dns가 변경되어야 하는 이슈가 있었다. 아무래도 dns기준으로 인프라를 구축할 때가 많아서 ip가 아닌 dns가 변경되면 분산 디비 운영하는 입장에서 난감하다.. 몽고 디비는 어떻게 처리를 해야할까 고민을 하다가 다음과 같이 처리했다. dns가 변경된 몽고 디비를 A라고 하겠다. 1. A를 primary에서 secondary로 변경 / rs.stepDown() 2. 변경된 primary에서 A를 제거 rs.remove("A:27017") 3. A 재시작 4. 변경된 primary에서 A를 추가 rs.add("A:27017") 5. 변경되어있는 primeary에서 rs.stepDown() 6. A가 Primary 가 될 때까지 반복.. 세컨더리 노드를 지정해서..
복제 셋(replica set)을 구축하기 위한 단계는 다음과 같다. 1. 각 노드에 몽고 디비 설치 (나는 전부 4.4.5로 버전으로 통일시켰다.) 2. mongod.conf 설정 3. 각 노드에서 몽고디비 실행 4. Primary로 사용할 노드에서 복제 셋 설정 및 실행 1. 몽고 디비 설치 Install MongoDB Community Edition on Linux — MongoDB Manual Install MongoDB > Install MongoDB Community Edition These documents provide instructions to install MongoDB Community Edition for supported Linux systems.For the best insta..
import json def remove_id(bson): result = [] for col in bson: if col == '_id': continue result.append(col) return result def preprocess_bson(bson, column_list): result = {} for column in column_list: result[column] = bson[column] return result def extract_record(bson_dummy) -> list: result = [] for bson in bson_dummy: column_list = remove_id(bson) record = preprocess_bson(bson, column_list) resu..