목록개발 (154)
그저 내가 되었고
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..
필요 배경 지식 & 개념 * Oauth / Oauth2 웹 사이트를 이용할 때 "네이버로 로그인" 같이 별도의 회원가입 없이 로그인을 제공하는 서비스를 이용한 적이 있을 것이다.. 이때 해당 플랫폼의 아이디가 있다면 외부 서비스에서도 인증을 가능하게하고 그 서비스의 API를 사용할. 수 있다. 이것을 OAuth라고 한다. 내가 만드는 클라이언트 서버에서 다른 서버의 정보(Google, Naver, Kakao 등) 를 가지고 오고 싶을때 안전하게 가지고 오는 플로우를 제시한다. 보통은 구글,페이스북에서 많이 사용하는 Authorization Code Grant 방식을 자주 사용한다. Oauth 기능은 간단히 설명해보면 아래와 같다. 어떤 사용자가 우리의 서비스를 이용하려 한다. 그런데 이 사용자가 정말 올..
1. 데이터베이스(db)의 종류 관계형 데이터베이스 vs 비관계형 데이터베이스 SQL 기반 데이터베이스 vs. NoSQL 기반 데이터베이스 관계형 데이터베이스 vs. NoSQL SQL vs. NoSQL 2. 몽고db NoSQL 기반 db 그러므로 모델끼리의 관계를 직접 설정할 수 없음 하지만 다른 documents들이 서로를 참조할 수 있게끔 설정하기는 가능 SQL에 Join 이 있다면, NoSQL에는 Schema Implant가 있는 것. SQL에서 테이블을 정의할 때 자료형을 정의하듯이, NoSQL에서는 서로 관계를 맺고 싶은 스키마를 다른 스키마에 삽입하면 됨. populate 메소드를 사용할 것. populate method는 몽구스 ODM의 핵심 요소로, 몽고디비 컬렉션 간에 동적 관계 맺어주는..