몽고디비에는 MySQL과 달리 JOIN 기능이 없습니다. JOIN을 흉내 낼 수는 있지만, 하나의 쿼리로 여러 테이블을 합치는 작업이 항상 가능하지는 않습니다. 동시에 쿼리를 수행하는 경우 쿼리가 섞여 예상치 못한 결과를 낼 가능성이 있다는 것도 단점입니다.
이러한 단점에도 몽고디비를 사용하는 이유는 확장성과 가용성 때문입니다. 데이터의 일관성을 보장해주는 기능이 약한 대신 데이터를 빠르게 넣을 수 있고, 쉽게 여러 서버에 데이터를 분산할 수 있습니다.
용어도 조금 다릅니다. MySQL의 테이블, 로우, 컬럼을 몽고디비에서는 각각 컬렉션, 다큐먼트, 필드라고 부릅니다.
애플리케이션을 만들 때 꼭 한 가지 데이터베이스만 사용해야 하는 것은 아닙니다. 많은 기업이 SQL과 NoSQL을 동시에 사용하고 있습니다. SQL과 NoSQL은 각각 특징이 다르므로 알맞은 곳에 사용하면 됩니다.
예를 들어 항공사 예약 시스템의 경우 비행기 표에 관한 정보가 모든 항공사에 일관성 있게 전달되어야 하므로 예약 처리 부분의 데이터베이스는 MySQL을 사용합니다. 대신 핵심 기능 외의 빅데이터, 메시징, 세션 관리 등에는 확장성과 가용성을 위해 몽고디비를 사용할 수도 있습니다.