MongoDB를 이용 할 때 가장 짜증나는게 질의어 만들기다. 익숙함의 문제라고 하는 개발자도 있지만, SQL과 비교해서 보자면 근본적인 문제점을 가지고 있다. 요즘은 언어세대라는 용어를 별로 쓰지 않는 것 같은데, 이 분류를 따르자면 SQL은 4세대 언어다. 즉 인간의 언어와 매우 비슷한 문법을 가지고 있다는 이야기다. 아래 예제를 보자.
SELECT person, SUM(score), AVG(score), MIN(score), MAX(score), COUNT(*)
FROM demo
WHERE score > 0 AND person IN('bob','jake')
GROUP BY person;
SQL 언어를 처음 보는 사람이라고 하더라도 간단한 설명만으로 어떤일을 하는 질의어라는 걸 한번에 이해 할 수 있을 것이다. 몇 번만 연습하면 응용을 할 수 있을 테고, 메뉴얼을 읽지 않더라도 왠만한 질의어는 만들어 사용 할 수 있을 것이다. 몽고디비는 자바스크립트 문법을 사용하는데, SQL에 비하면 상상도 할 수 없을 만큼 어렵다. 위의 SQL을 몽고디비 쿼리로 변경했다.
이러한 질의어를 만들 수 있을까 ? 물론 몽고디비는 SQL과는 목적이 다르므로, 질의과정에서 연산을 수행하는 쿼리를 만드는 것은 불공정한 예제라고 할 수 있겠다. 요는 "SQL에 비하면 엄청나게 복잡하다"는 거다. http://www.querymongo.com/와 같은 사이트를 이용하거나 다른 툴들이 필요 할 수 있다. 애초에 뭔가 연산이 복잡해 질 것 같으면 SQL을 이용하는 데이터베이스를 사용하는게 좋다.
Contents
Mongodb Find 예제
테스트 데이터 준비
find 기본
특정 필드만 반환하기
Exact matching
비교 일치
배열에서의 Find
정렬
limit 와 skip
Recent Posts
Archive Posts
Tags