그저 내가 되었고

🌱mongoDB:: 배열 수정 관련 & JS::객체/배열 관련 본문

개발/DB

🌱mongoDB:: 배열 수정 관련 & JS::객체/배열 관련

hyuunii 2022. 12. 1. 22:48

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;
    };