본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Node.js

Mongoose array (몽구스 배열)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2023. 9. 12.

간단하게 정리한 몽구스에서 배열 데이터를 관리하는 방법 입니다.

* 샘플 데이터 구조

#도큐먼트 구조
## 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);
    });
반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글