일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- JavaScript
- TypeScript
- Queue
- MySQL
- Express
- nestjs
- class
- flask
- Python
- cookie
- MongoDB
- Nest.js
- 자료구조
- typeORM
- GIT
- Dinosaur
- Bull
- mongoose
- dfs
- 공룡게임
- OCR
- jest
- AWS
- 게임
- Sequelize
- 정렬
- react
- game
- Today
- Total
목록object array (2)
포시코딩
{ _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) => { // } );
{ _id: 1, members: [ { _id: 0001, id: 'Sam', rank: 0 }, { _id: 0002, id: 'Kim', rank: 1 } ], name: '테스트그룹' } 위와 같은 collection 에서 내용이 비슷한 자료가 _id 1에서부터 끝도없이 있다고 쳐보자 members 의 내용물이 다 다를때 어떻게 _id 가 1인 해당 자료를 찾을 수 있을까? $elemMatch 를 쓰면 된다. app.get('/list', (req, res)=>{ let _id = ObjectId(req.query._id); db.collection('group').find({ members: { $elemMatch: { _id: _id} } }).toArray().then((result)=>{ ..