MySQL | schema | table | row |
MongoDB | DB | collection | document |
참고로 mongoose는 MongoDB를 다루기 위한 ODM(Object-Document-Mapper)이다. 소스에서 Document를 객체지향 개념으로 사용하고자 하는 목적으로 만들었다.
node.js진영의 mongoose!
RDB의 ORM인
Java진영의 JPA나, node.js의 squelize가 관계를 매핑시켜 소스에서 객체형태로 사용하고자 하는 목적으로 만들어 진 경우와(소스코드상에서 SQL문을 직접적으로 작성하는 것을 피하기)
비슷해 보일 수도 있다.
하지만 정말 NOSQL DB인 MongoDB에 ODM이 필요할까?
NOSQL DB는 이미 의도적으로 스키마, Join, SQL작성의 개념이 필요 없도록 만들어 졌는데 말이다.
지금 내 생각으로는 단지 부가적인 기능이 필요하기 때문인 것으로 보인다.
몽구스는 참고로 강제 스키마(schema)의 부활, populate,
프로미스와 콜백 사용 가능, 편리한 쿼리 빌더 등을 지원한다.
실제로 NOSQL DB를 운영하다보면 스키마와 Join이 필요한 경우가 생기는데 그 때 필요하다고 한다.
'그 때'를 인식하기 위해선 우선 실무적인 경험이나 공부를 통해 맞닥뜨려야 배울 수 있을 것이다.
간단한 예.
참고로 '관계'와 같은 성질을 필요로 할 땐 .populate('commenter')만 추가해주면
오브젝트아이디를 활용할 수 있어서 다른 객체를 아주 간단히 불러올 수 있다.
참조: https://www.zerocho.com/category/MongoDB/post/5963b908cebb5e001834680e
'DB > MongoDB' 카테고리의 다른 글
권리자 권한 만들기 (0) | 2019.10.03 |
---|---|
MongoDB 윈도우환경에서 실행전 꼭 해야할 일 (0) | 2019.10.03 |
MongoDB 컨테이너 (0) | 2019.09.12 |
댓글