Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- @Moditying @Query
- 중복된 단어
- 객체의 밸류값만 찾기
- 중복문자제거
- 중복단어제거
- 코딩 어?
- sql 문자열 패턴 검색
- 스프링 데이타 JPA
- 단어 제거
- 재귀스왑
- lastIndexOf()
- ubuntu타임존
- 객체를 배열로
- 우분투 시간 변경
- 시퀄 문법
- js 문자열을 문자배열로
- 중복 문자열
- sql like연산자
- 깃 토큰 만료
- 문자열 중복
- 레디스 확인
- 제로베이스
- 배열을 객체로
- ...점점점문법
- 객체의키값만 찾기
- 문자열순서바꾸기
- 배엘에서 스왑
- indexOf()
- 프론트엔드 스쿨
- 5.3.8 Modifying Queries
Archives
- Today
- Total
코딩기록
JS) 몽고디비 - updateOne 배열 안의 객체 밸류 업데이트 본문
728x90
console.log("------- 1 -----------");
const score = [
{ win:1 },
{ lose:0 }
];
const winScore = score[0].win +1;
const loseScore = score[1].lose +1;
console.log(score)
console.log(winScore)
console.log(loseScore)
console.log("------ 2 ------------");
const win = {score};
const winScore2 = win.score[0].win +1;
const loseScore2 = win.score[1].lose +1;
console.log(win)
console.log("winScore2:", winScore2)
console.log("loseScore2", loseScore2)
console.log("score[0].win:", score[0].win)
몽고 디비 updateOne을 할 때 이런 식으로 쓴다.
const updateWin = await Users.updateOne({id:winner}, {$set: {score:addWinScore}});
변수명 updateWin / async가 위에 있음 / user디비 / id(키)가 winner(밸류,winner안에 id가 있음)인 id를 찾고 / score키에 addWinScore값을 업데이트한다.
내가 직면한 문제는 배열안에 있는 객체 중 [0]째 객체의 밸류에 addWinScore(Number)를 업데이트하는 것이다.
객체의 값에는 어떻게 업데이트하는지 매번 해와서 잘아는데 배열 안의 객체에는 어떻게 해야 하는지 감이 안 와서 고심 끝에 노드의 집단지성으로 특히 엔주님의 큰 도움으로 풀었다. 어리석은 나는 엔주님이 첨에 얘기 했을때는 안될것 같다 했지만 결국 엔주님의 99% 아이디어와 몽고 디비 공식문서 1%의 도움으로 풀었다.
updateOne({id:winner}, {$set: {"score.0.win":addWinScore}});
user디비에 score는 아래와 같은 형식으로 들어가 있다. {"배열안 0번째 win 객체": 들어갈변수명} 이렇게 쓴다.
score [
{ win : 0 },
{ lose: 0 }
]
//win +1 저장
const winScore = await Users.findOne({id:winner}, {_id:false, score:true});
const addWinScore = winScore.score[0].win + 1;
console.log("게임결과 승+1>", addWinScore);
const updateWin = await Users.updateOne({id:winner}, {$set: {"score.0.win":addWinScore}});
*공식-몽고 디비
https://docs.mongodb.com/manual/reference/operator/update/set/
반응형
'프론트 > JavaScript' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 책 공부 할때 도움되는 무료강의 (0) | 2024.07.23 |
---|---|
JS) 오름차순, 내림차순 (배열 값 정렬 ) (0) | 2024.02.19 |
JS) 객체 안에 객체 넣기 (0) | 2022.03.11 |
JS) 반복문의 제어 break, continue (0) | 2022.01.15 |
JS (0) | 2022.01.03 |
Comments