몽고디비에서의 다대다 관계
338
작성한 질문수 7
몽고디비에서 user와 post의 관계를 1:N으로 설정하고 싶어서 user와 post의 스키마안에 다음과 같이 작성을 했습니다. 그런데 로그인하고 글을 작성한 후 compass를 확인해보니 컬럼이 추가되지 않습니다. 어떤 부분이 빠졌는지 알려주시면 감사하겠습니다. 그리고 로그인 상태로 nodemon을 사용중인데 저장을 할 때 마다 로그인이 풀리는 것 같습니다. 다른 이유일수도 있는데 작업을 하다보면 1~2분 후에도 계속해서 로그인이 풀리고 있는데 해당 챕터의 serealize와 deserealize까지 구현을 했다면 세션에 로그인 정보가 저장되는 것인가요? 관리자 도구를 통해 로그인을 수행할때마다 sid가 생성되는 것을 볼 수 있었는데 왜 계속 유지가 되지 않고 로그아웃이 되는지 궁금합니다.
// post schema
user: {
type: mongoose.Schema.Types.ObjectId,
require: true,
ref: 'User',
}
// user schema
post: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
답변 1
0
몽고디비에는 다대다 관계가 없습니다. 흉내내는 것도 힘듭니다. 몽고디비에는 컬럼 개념도 없기 때문에 직접 데이터를 넣지 않는 한 컬럼(정확히는 필드)이 생기지 않습니다.
ref 자체가 몽고디비 기능이 아니라 몽구스가 임의로 추가해주는 기능입니다.
또한 기본적으로 세션이 서버 메모리에 저장되기 때문에 서버 재시작 시마다 로그인이 풀립니다. 서버 코드를 수정하면 노드몬이 서버를 재시작하고 로그인도 풀리게 됩니다.
이를 막기 위해서는 레디스같은 별도의 메모리 서버를 사용해야 합니다.
실제 서비스에서도 cluster를 사용하나요?
1
314
2
캐싱에 관하여
0
279
3
salt를 실무에서 사용할때 항상 randomBytes로 만들어줘야 하나요?
0
347
1
게시물 올리기 오류
0
408
1
캐슁 이후 로그인창
0
266
1
kakao passport 질문있습니다.
0
493
3
global객체 공유 질문드립니다.
1
418
1
서버가 죽어버리네요
0
1047
8
포링키 문제..
0
235
2
커넥션 플래시 설치문제
0
216
2
익스프레스 제너레이터? 설치문제
0
2586
6
redis 질문입니다.
0
305
1
9장 세션을 DB에 저장시 리다이렉션 오류 발생
0
874
8
프레임워크 선택에 관하여 질문이 있습니다.
0
300
3
시퀄라이즈 질문입니다 ! !
0
588
1
리뉴얼 강의 12강 socket.io에서 req.session접근 관련 질문
0
922
6
oAuth 질문입니다.
0
356
3
GCP 질문입니다.
0
366
1
Passport 모듈 로그인 구현관련
0
720
6
카카오 로그인 관련 질문입니다!!
0
606
4
스스로 해보기 10-16 nunjuncks 질문있습니다
0
499
5
제로초님 HTTP 완벽가이드 추천해주신거 너무 잘 읽었습니다.
0
317
2
gif채팅방 nunjucks관련 질문입니다!
0
338
3
현영님 몽고db관련 질문입니다.
0
233
3





