그저 내가 되었고
🌱mongoDB:: 배열 수정 관련 & JS::객체/배열 관련 본문
mongoDB 배열 수정
* 배열에 값 추가하기 & 제거하기
- '$push'를 쓰면 조회한 결과의 필드(배열)에 값을 추가함
- '$pull' or '$pullAll'로 해당하는 값을 제거할 수 있음
banMember = async(postId, nickName) => {
await Posts.updateOne({_id:postId},{$push:{banUser: nickName}})
await Posts.updateOne({_id:postId},{$pull:{confirmMember: nickName}})
return
}
JS 객체
(사족 알고리즘 등에서 많이 접해봤는데 막상 진짜 코드에서 써먹으려니 기억이 잘 안나고 말아버리는거에요..; 필요할때 잘 써먹을 줄 아는 개발자가 되어봅시다🥹)
* 객체에 프라퍼티 추가
+ 점 표기법: 할당 연산자와 함께 점 표기법을 사용하여 기존 개체에 프라퍼티 추가.
- 문법:
object.property = value
- 코드에서 사용한 예시:
class CommentsRepository {
//댓글 전체 목록 보기
findAllComments = async (postId) => {
const allCommentsData = await Comments
.find({postId})
.populate('postId', 'banUser')
.sort({updatedAt: -1});
for (let i = 0; i < allCommentsData.length; i++) {
const userData = await Users.findOne({userId: allCommentsData[i].userId});
allCommentsData[i].userAvater = userData.userAvater //🌟
allCommentsData[i].age = userData.age //🌟
}
return allCommentsData
};
...
}
* 객체에 어레이 추가
- 문법:
let obj = { }
obj[ '추가할 key' ] = '추가할 value'
- 코드에서 사용한 예시:
// 회원 정보 불러오기
findUserData = async (userId, nickName) => {
const findUserData = await this.usersRepository.findUserData(userId, nickName)
const findBookmarkData = await this.postsRepository.findPostsByPostIdForBookmark(findUserData.bookmark)
const BookmarkMapData = findBookmarkData.map((postInfo) => {
return {
postId: postInfo._id,
title: postInfo.title,
closed: postInfo.closed
}
})
findUserData["bookmarkData"] = BookmarkMapData;
return findUserData;
};
'개발 > DB' 카테고리의 다른 글
🎯Node.js + mongoDB:: 랜덤 추출 코드 정리 (0) | 2022.12.11 |
---|---|
🌱mongoDB:: deleteMany&이후 용량 확보+속도 향상 (0) | 2022.12.03 |
🌱mongoDB:: Array로 find? (0) | 2022.11.30 |
🌱mongoDB:: population (0) | 2022.11.29 |
🌱mongoDB:: relation 설정하기(populate 이용) (0) | 2022.11.26 |