목록개발/DB (13)
그저 내가 되었고
1) 랜덤 추출:: 컨트롤러나 레포단에는 별로 특별한 코드가 없다. 서비스단에서 랜덤 추출의 로직이 실행됨. shuffle-array라는 라이브러리 설치가 필요함(배열을 무작위로 섞어주는 역할) ↳※shuffle-array 설치 없이 구현하기? 아래 예제에서 shuffleArray()는 인자로 전달받은 배열의 요소를 무작위로 섞는다. 어떻게냐구?! Math.random()는 0이상 1미만의 숫자를 리턴하고, sort()는 음수, 양수, 0의 결과 값에 따라 정렬한다. Math.random()이 무작위로 리턴된 결과값이기 때문에 정렬 또한 무작위로 진행된다. function shuffleArray(array) { array.sort(() => Math.random() - 0.5); } let arr = [..
╰( ・ ᗜ ・ )╯모든 다큐먼트 삭제 join을 써야지 이런게 가능할 줄 알았는데.. 그래서 몽고db는 안될 줄 알았는데 되다니..!!!! 신기하다. 몽고db를 너무 무시했던 것 같다,,,,,, - 기본 문법: db.users.deleteMany({}); users 컬렉션의 모든 도큐먼트를 삭제하는 명령. ٩(●˙▿˙●)۶ 조건에 일치하는 모든 도큐먼트 삭제 - 기본 문법: db.users.deleteMany({name: "나얍"}); '나얍'이라는 사용자 도큐먼트를 모두 삭제. 입력 파라미터로 조건을 붙여줄 수 있음. - 응용 문법: db.users.deleteMany({age: {$gte: 27}}); age 필드가 27 이상의 도큐먼트를 모두 삭제 - 코드 사용: // 회원 탈퇴 deleteUse..
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 객체 (사족 알고리즘 등에서 많이 접해봤는데 막상 진짜 코드에서 써먹으려니 기억이 잘 안나고 말아버리는거에요..; 필요할때 잘 써먹을 줄 아는 개발자가 되어봅시다🥹) * 객체에..
이상한(?)걸 발견했다. 게시글 북마크 기능 구현 중 북마크 스키마 자체를 없애고 유저 안의 칼럼으로 쌓이도록 해달라는 요청을 받았다. services/users.js getBookmark = async(nickName) => { let result = [] const getBookmark = await this.usersRepository.getBookmark(nickName); console.log("getBookmark", getBookmark) //여기서는 nickName에 해당하는 유저의 정보 찾아와짐 const GetBookmark = getBookmark.map((userInfo) => userInfo.bookmark) //위의 유저정보에서 bookmark만 map console.log("G..
Cross Database Populate Let's say you have a schema representing events, and a schema representing conversations. Each event has a corresponding conversation thread. const db1 = mongoose.createConnection('mongodb://localhost:27000/db1'); const db2 = mongoose.createConnection('mongodb://localhost:27001/db2'); const conversationSchema = new Schema({ numMessages: Number }); const Conversation = db2..