일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- flask
- 자료구조
- OCR
- Bull
- GIT
- cookie
- class
- TypeScript
- game
- Sequelize
- nestjs
- MongoDB
- Queue
- Dinosaur
- Nest.js
- 공룡게임
- 게임
- Python
- Express
- jest
- nodejs
- JavaScript
- typeORM
- react
- mongoose
- MySQL
- dfs
- 정렬
- AWS
- Today
- Total
목록MongoDB (32)
포시코딩
우선 mongodump 명령어를 사용할 수 있어야 한다. 나같은 경우도 docker를 통해서 mongodb를 사용하다보니 맥에서 해당 명령어가 없다고 나왔기에 설치를 진행했다. brew tap mongodb/brew brew install mongodb-database-tools dump mkdir backup mongodump --uri "mongodb://{username}:{password}@{ip or server address}:27017/{db_name}?authSource=admin" --out backup `backup` 이라는 폴더를 만든 후 거기에 해당 db dump를 넣게 되는데 bson 확장자 형태로 주르륵 들어간다. 여기서 내가 헤맸던 부분은 mongodb uri에 대해 쿼리스트링..
MySQL, MariaDB 이미지 저장 docker ps -a docker images 먼저 옮길 대상이 되는 컨테이너와 일치하는 이미지 확인 sudo docker save -o my_image.tar my_image:tag -o: 'output'의 약자, 이미지를 아카이브 파일로 출력할 위치나 경로를 지정하는데 사용 추출하면 권한 때문에 빨갛게 나오는데 옮기려면 권한이 필요하니 chmod를 통해 755로 바꿔준다. sudo chmod 755 mariadb_10.5.tar 파일 복사 파일은 Filezila로 옮겼다. (해당 부분은 생략) 이미지 불러오기 docker load -i mariadb_10.5.tar -i: input 이미지를 불러온 모습 컨테이너 생성 및 실행 Docker 네트워크 생성 doc..
개요 EC2에 Express 서버랑 MongoDB 까지 다 세팅해놓고 잘 시간이 되어 인스턴스 종료 후 다음날 다시 인스턴스를 재시작하여 나머지 세팅을 진행하였는데 다시 실행한 서버에서 MongoDB 연결을 못하고 있었고 확인해보니 잘되던 MongoDB가 뭔 짓을 해도 켜지질 않았다. sudo service mongod start sudo systemctl start mongod 위 명령어 둘다 먹통 따로 에러라도 출력이 되면 좋겠는데 그것도 아니었다. 원인 파악 일단 어제까지만해도 잘 켜지는걸 확인했으니 하룻밤사이 뭔가 바뀐게 있어 안되는 것이 확실시 되는 상황. 그 사이에 내가 했던 것들을 되돌아보면 pm2를 깔기 위해 sudo -s를 통해 관리자 계정으로 전환할 일이 있었다. 예전에 리눅스 서버를 ..
Node.js 설치 명령어 curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs 설치 후 확인 node -v npm -v MongoDB 설치 명령어 [공식자료](링크) wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - echo "deb [ arh=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list ..
1. Homebrew 설치 터미널을 실행한 후 아래 코드를 통해 homebrew를 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 에러해결법 위 코드를 그대로 입력했는데 이런 에러가 뜬다면 여기서 안내하는 방법을 그대로 따라해준다. git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow (저장소 위치에 따라 위 코드는 달라질 수 있다.) unshallow 완료가 되면 다시 맨 위에서 안내한 코드를 입력한다. homebrew 설치 완료 2. MongoDB 설치 brew tap mongod..
데이터베이스(Database)의 개념 단순히 데이터를 잘 저장하고 잘 찾기 위해 만들어진 소프트웨어를 Database Management System(DBMS)이라 부른다. DBMS가 설치된 서버 컴퓨터를 데이터베이스 서버(DB 서버)라고 부를 수 있다. 흔히 '데이터베이스에 저장한다'라고 말하면 이 DBMS가 설치된 서버에 데이터를 저장한다고 말하는 것 즉, DB 서버의 모든 데이터는 DBMS가 관리하게 된다. 데이터베이스의 종류 관계형 데이터베이스 - Relational Database(RDB) 데이터 형식이 정해져 있고, 데이터 끼리 관계를 맺어 모순이 없는 데이터를 유지할 수 있도록 도와주는것에 집중한 데이터베이스를 관계형 데이터베이스라고 부른다. 모순이 없는 데이터: 무결성과 정합성이 높은 데이..
Schema.virtual이란? mongoose 라이브러리에서는 MongoDB 내부에는 특정 Column이 존재하지 않지만, 데이터를 조회할 때 가상의 Column을 추가하여 좀 더 편리하게 데이터를 가공하거나 사용할 수 있도록 도와준다. Schema.set('toJSON', { virtuals: true })은 JSON 타입으로 해당 Schema를 변환할 때 가상값인 todoId를 반환하도록 설정하는 것이다. Studio 3T와 mongoose의 데이터를 비교해보았을 때, virtual로 등록된 todoId 값이 MongoDB에는 존재하지 않지만, mongoose를 이용해 조회하였을 때는 값이 존재하는 것을 확인할 수 있다. 여기서 virtual로 설정한 todoId는 return this._id; 를..
{ _id: '1', members: [ { _id: '0001', id: 'Sam', rank: 0 }, { _id: '0002', id: 'Kim', rank: 1 } ], name: '테스트그룹' } Collection의 이름이 Target이고 0002의 랭크를 5로 변경하고 싶을 때, (Mongoose model을 target으로 만든 후 라고 가정) Target.updateOne( { _id: '1', members: { $elemMatch: { _id: '0002' } } // 또는 아래와 같이 간단하게 표현 가능 // 'members._id': '0002' }, { $set: { 'members.$.rank': 5 } }, (err, data) => { // } );
windows에선 잘 되던 MongoDB 연결이 맥북에서 같은 코드로 테스트하니 연결을 못하는 현상을 발견했다. pymongo.errors.ServerSelectionTimeoutError 라는 에러가 뜨는데 local로 깔려있는 MongoDB로 연결하니 해당 에러 안뜨고 잘 접속이 됐다. 보안 문제로 보여 여러 검색을 한 결과 https://spartacodingclub.kr/community/fastqna/all/62d98ba9697492e292fd1b3f/mongoDB%20%20ServerSelectionTimeoutError%EA%B0%80%20%EA%B3%84%EC%86%8D%20%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4 스파르타코딩클럽 5주 완성! 코딩을..
1. (SELECT) Users 컬렉션에서 id로 검색하기 User.find({ id: id }, (err, data) => { 2. (SELECT) Groups 컬렉션에서 members column에 해당하는 Object Array에서 _id값으로 검색하기 Group.find({ members: { $elemMatch: { _id: ObjectId(_id) } } }, (err, data) => { 3. (INSERT) Users 컬렉션에 id, psword, name 값으로 된 데이터 넣기 User.create({ id: userInfo.id, psword: userInfo.psword, name: userInfo.name }, (err, result) => { 4. (UPDATE) Groups 컬렉..