일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- typeORM
- nodejs
- mongoose
- MongoDB
- Express
- 게임
- JavaScript
- Bull
- Nest.js
- react
- cookie
- nestjs
- 공룡게임
- 정렬
- Queue
- Python
- 자료구조
- game
- MySQL
- OCR
- flask
- dfs
- Sequelize
- TypeScript
- GIT
- AWS
- Dinosaur
- jest
- class
- Today
- Total
목록MongoDB (15)
포시코딩
mongodb URI를 통해 db에 연결할 때 URI format에 따라 접근 방식이 달라진다는 사실을 알게 되었다. MONGODB_URI=mongodb://root:{password}@localhost:27017/{dbname}?authSource=admin MONGODB_URI=mongodb://root:{password}@localhost:27017/?authMechanism=DEFAULT 서버를 시작할 때 둘 다 DB와는 잘 연결되었기에 신경을 안썼는데 {dbname}?authSource=admin 이 설정은 사용자 인증이 'admin' 데이터베이스에서 실행된다. 그리고 {dbname}이란 데이터베이스에 'root' 사용자로 인증하여 접속한다. ?authMechanism=DEFAULT 이 설정의 ..
데이터 저장 const todo = new Todo({ value, order }); await todo.save(); Todo.create({}) 대신 이렇게 쓸 수 있다. _id에 대해 찾기 const currentTodo = await Todo.findById(todoId); const currentTodo = await Todo.findOne({ _id: todoId }); 둘 다 같은 결과를 리턴한다.
const mongoose = require('mongoose'); const postSchema = new mongoose.Schema({ // ...생략 }); postSchema.virtual('postId').get(function() { return this._id.toHexString(); // 이 부분의 this._id에 해당하는 부분을 가상화 시킨다. }); postSchema.set('toJSON', { virtuals: true }); module.exports = mongoose.model("Post", postSchema); mongoose에서 제공하는 Schema의 가상화를 이용하는 방법인데 위에 코드에 적혀있듯, 이 Schema가 JSON화 될 때 this._id 즉, 이 스키마..
const mongoose = require('mongoose'); const postSchema = new mongoose.Schema({ user: { type: String, required: true, } // ...생략 }); postSchema.set('timestamps', true); module.exports = mongoose.model("Post", postSchema); 여기서 postSchema.set('timestamps', true); 이 부분을 통해 'user' field 뿐만 아니라 createdAt, updatedAt field 까지 자동으로 생성 및 현재 시간을 넣어줄 수 있다. (Type은 Date로 들어가는것으로 확인됨) 물론 postSchema.set('timest..
https://www.npmjs.com/package/mongoose mongoose Mongoose MongoDB ODM. Latest version: 6.8.0, last published: 8 days ago. Start using mongoose in your project by running `npm i mongoose`. There are 13094 other projects in the npm registry using mongoose. www.npmjs.com 설치 방법 npm install mongoose 문서(Document) MongoDB에서 가지고 있는 각 데이터 하나하나를 문서(Document)라고 정의한다. 1개 이상의 Key-Value의 쌍으로 이루어져 있다. { "_id": ..
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..
https://tesseractjh.tistory.com/166 [mongoose] exec()은 어떤 역할을 하는가? 아래 사진은 mongoose 공식 문서에서 find 메서드에 대해 설명하고 있는 부분이다. 그런데 사용 예시에서 어떤 때에는 exec()을 사용하고, 어떤 때에는 exec()을 사용하고 있지 않다. exec()을 사용하고 tesseractjh.tistory.com
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) => { // } );
Invite.js const mongoose = require('mongoose'); //const ObjectId = mongoose.Schema.ObjectId; const inviteSchema = new mongoose.Schema({ code: String, group_id: ObjectId, created_date: Date, expired: Boolean, }); module.exports = mongoose.model('Invite', inviteSchema); 위 코드의 Invite란 model이 있을 때, ObjectId를 인식하지 못해 저장 시 에러가 발생한다. 이 경우 위 주석에 해당하는 부분을 해제하여 const ObjectId = mongoose.Schema.ObjectId; 선..