Hello 👋

🧑🏻‍💻 A Developers who create code that changes the world

mongodb 6

[MongoDB] HTTP, gRPC ObjectId 타입 인식 문제

* MongoDB의 _id나 특정 키가 ObjectId 타입일 경우, 이를 문자열로 변환하지 않고 그대로 전송하면 클라이언트에서 처리할 수 없음 * 반대로 클라이언트에서 문자열로 보낸 값을 MongoDB 쿼리에서 ObjectId로 변환하지 않으면 쿼리 결과가 제대로 반환되지 않는 문제가 발생 데이터를 API로 주고받을 때, MongoDB 필드 중 ObjectId인 경우에는 서버/클라이언트에서 변환 처리를 명시적으로 해줘야함 이를 해결하기 위해, JSON 형식의 데이터를 처리할 때 _id 필드를 ObjectId 로 변환해주는 로직이 필요def convert(value): if isinstance(value, dict): for key, item in value.items(): ..

Database/MongoDB 2025.01.08

[MongoDB] MongoDB ReplicaSet 기본 구성

MongoDB ReplicaSetReplica Set (몽고 이중화)가장 일반적인 이중화 방법, 데이터를 복제하여 장애 복구몽고디비를 사용하면 레플리카셋을 생성함으로써 레플리카를 설정할 수 있음레플리카셋은 클라이언트 요청을 처리하는 프라이머리 서버 한 대와, 프라이머리 데이터의 복사본을 갖는 세컨더리 서버 여러대로 이루어짐프라이머리 서버에 장애가 발생하면 세컨더리 서버를 자신들 중에서 새로운 프라이머리 서버를 선출할 수 있음복제를 사용하는 상태에서 서버가 다운되면, 복제 셋에 있는 다른 서버를 통해 데이터에 접근할 수 있음서버상의 데이터가 손상되거나 접근할 수 없는 상태라면 복제 셋의 다른 멤버로부터 새로운 복제 데이터를 만들 수 있음Replica Set 설계 방법복제 셋을 설계하기에 앞서 과반수 개념을..

Database/MongoDB 2024.09.11

[MongoDB] MongoDB 백업 및 복원

MongoDB 작업 중, 신중하지 못했던 데이터 작업으로 컬렉션의 모든 데이터를 Delete 함 따로 백업을 해놓지 않은 데이터라 복구할 수 없었음 데이터 작업에 신중할 필요가 있지만, 무엇보다 안전하게 하기 위해 백업 전략이 필요 mongodump로 백업하기 mongodump는 MongoDB 데이터를 BSON(Binary JSON) 포맷으로 덤프하는 툴 전체 데이터베이스 백업 (dump)mongodump --uri="mongodb://localhost:27017" --out=/backup/mongo_$(date +%F) #저장경로 - 오늘날짜 특정 데이터베이스만 백업mongodump --db=mydb --out=/backup/mongo_$(date +%F) mongorestore로 복원하기 m..

Database/MongoDB 2024.09.06

[Nomad] Nomad에서 raw_exec 드라이버 사용

raw_exec 드라이버Nomad에서 Docker 같은 컨테이너 기술 없이, 호스트 머신에서 직접 실행 파일을 구동하는단순한 드라이버 /etc/nomad.d 의 경로에서 nomad.hcl 파일을 수정해줘야함client { enabled = true servers = ["127.0.0.1"] options { "driver.raw_exec.enable" = "true" "driver.docker.enable" = "false" }} mongodb.nomad file 작성 예시job "mongodb" { # 이 Job은 "mongodb"라는 이름으로 정의되고 # 실행 위치는 "dc1"이라는 데이터센터(기본값)에 제한됨 datacenters = ["dc1"] type = "servic..

[Linux] 인프라 설치 스크립트 및 오류 해결

# ------------------------------# 버전 정의 (참고용)# ------------------------------PYTHON_VERSION=3.12.8INFLUXDB_VERSION=1.11.8TELEGRAF_VERSION=1.34.1GRAFANA_VERSION=11.6.0REDIS_VERSION=7.0.11REDIS_CMD_VERSION=0.8.0FLUENTD_VERSION=1.18.0POETRY_VERSION=2.1.2MONGO_VERSION=5.0.31PG_VERSION=14KONG_VERSION=3.9.0KONG_REPO_URL="https://download.konghq.com/gateway-3.x-rhel"KONGA_VERSION=0.1.3# ===============..

[MongoDB] 기본 명령어 CRUD 비교,논리 연산자

1. Document 입력 - insertOne, insertManyinsertOne: 한 개의 document(문서)를 생성insertMany: 여러 개의 document를 한 번에 생성// 하나의 문서를 추가 (insertOne)db.test_2.insertOne( { title: "MongoDB Guide", author: "Jane Doe", views: 100 })// 여러 개의 문서를 추가 (insertMany)db.test_2.insertMany([ { title: "Python Tutorial", author: "John Smith", views: 150 }, { title: "JavaScript Basics", author: "Sara Lee", views: 200 }, ..

Database/MongoDB 2024.07.25