간단하게 정리한 몽구스에서 배열 데이터를 관리하는 방법 입니다.
* 샘플 데이터 구조
#도큐먼트 구조
## 1번데이터
{
key : 'a',
group : [
{ id :'aaa', number : '1234'},
{ id :'bbb', number : '5678'}
]
}
## 2번데이터
{
key : 'b',
group : [
{ id :'ccc', number : '1234'},
{ id :'ddd', number : '5678'}
]
}
## 3번데이터
{
key : 'c',
group : [
{ id :'eee', number : '1234'},
{ id :'fff', number : '5678'}
]
}
#1. 배열 데이터 조회 : group 필드의 배열 값에서 id가 'aaa' 인 것 찾아오기
몽구스모델
.find({ group: { $elemMatch: { id: 'aaa' } } })
.exec()
.then((arg) => {
console.log(arg);
});
#2. 배열 데이터 추가 : key 값이 'b' 인 곳에 group 필드의 배열에 값을 추가하기
const 새로들어갈데이터 = { id: 'hhh', number: '1212' };
몽구스모델
.updateOne({ key: 'a' }, { $addToSet: { group: 새로들어갈데이터 } }) //group 필드에 추가
.exec()
.then((arg) => {
console.log(arg);
});
#3. 배열 데이터 삭제 : key 값이 'b' 이면서 group 필드 배열에서 id 값이 'ddd' 인 것 삭제하기
몽구스모델
.updateOne({ key: 'a' }, { $pull: { group: { id : 'ddd'} } }) //pull 을 통한 조건 & 배열 삭제
.exec()
.then((arg) => {
console.log(arg);
});
#4. 배열 데이터 수정 : key 값이 'b' 이면서 group 필드 배열에서 id 값이 'ddd' 인 항목의 number 값을 5로 변경
몽구스모델
.updateOne(
{ key: 'a', 'group.id' : 'ddd' },
{ $set : { 'group.$.number' : '5' } }
)
.exec()
.then((arg) => {
console.log(arg);
});
반응형
'Node.js' 카테고리의 다른 글
FFMPEG를 활용한 간단한 웹 비디오 에디터(web video editor) - 2 (2) | 2021.09.01 |
---|---|
FFMPEG를 활용한 간단한 웹 비디오 에디터(web video editor) - 1 (16) | 2021.09.01 |
Node.js ffmpeg(노드 ffmpeg 이미지, 워터마크, 섬네일, 구간 자르기, 영상 합치기) (0) | 2021.07.28 |
Node.js mail(Node.js 메일) smtp 사용 (0) | 2021.06.18 |
Node.js 몽고DB 연동(Nodejs mongodb, Node.js mongodb)을 커넥션(Connection) 클래스에서 (0) | 2020.12.22 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글