몽고DB(MongoDB) 기본적인 조회방법
1. find() 함수를 통한 조회
먼저 RDB 에서는 조회는 기본적으로 select 문으로 한다. 하지만 MongoDB에서는 find() 라는 함수를 통해서 데이터를 확인 할 수 있다.
select * from XXX where ...
MongoDB에서의 기본적인 문법은 아래와 같다.
- db.TableName.find( { } ) : 함수 { } 안에 key 와 value 값이 없으면 현재 컬렉션에 있는 데이터를 모두 조회하게 된다. 또는 아래와 같이 Student 컬렉션의 "name" 속성 중 Seo 라는 value 값을 가지고 있는 데이터를 반환할 수도 있다.
- db.Student.find({"name":"Seo"}) : 현재 DB에 있는 컬렉션 Student 에서 "name" 값이 Seo 인 것을 모두 반환한다.
- db.getCollection('CollectionName').find({}) : 기본적으로 ROBO 3T 에서 이와 같은 방식으로 많이 쓴다 .. 그런데 필자는 전자가 쓰기 더 편하고 직관적이다.
- db.TableName.findOne( { } ) : 데이터를 한개만 검색하는데 순서는 id 값 순서로 한다. 몽고DB에서는 기본적인 ID값이 주어지기 때문에 그 값을 기준으로 데이터를 찾는데, 만약 똑같은 데이터가 2개가 있을 경우 아이디가 높은 순서를 먼저 찾아서 반환한다.
2. AND 그리고 OR
기본적으로 데이터를 찾을려면 한개만 비교하지 않고 여러개를 비교할 수도 있다. 기본적으로 2개 이상을 비교하려면 AND와 OR를 기초적으로 쓰게 된다. AND 와 OR는 아래와 같이 사용하면 된다.
AND
- db.Student.find({ "name":"Seo", "age":27 }) : Student 컬렉션에서 "name"이 Seo 이고, "age" 가 27인 값을 찾아서 반환한다.
- db.Student.find({ $and : [{"name":"Kim"} , {"age":15} ] }) : 또는 이렇게 find의 매개변수로 $and 를 지정하면 and 연산을 한다는 것이 명확하기 때문에 필자는 이와 같이 사용하는 것을 좋아한다.
OR
- db.Student.find({ $or [ {"name":"Seo"}, {"age":27} ] }) : OR는 2개 이상의 데이터가 하나라도 값이 존재한다면 그 값을 리턴해준다.
AND와 OR의 조합
- db.Student.find({ "date":"2018-10-13", $or: [{"name":"Seo"} , {"age":27} ] }) : 설명 안해도 이해가 간다고 생각합니다..
'데이터베이스' 카테고리의 다른 글
파이썬에서 몽고DB(MongoDB) 데이터 읽어들이기(Read) (0) | 2018.10.23 |
---|---|
파이썬 Anaconda 및 Django 에서 MongoDB insert 하기 (0) | 2018.10.18 |
윈도우 10에서 몽고DB 설치하기 3 (윈도우 로컬 서비스 생성) (0) | 2018.10.09 |
윈도우 10에서 몽고DB 설치하기 2 (환경변수 및 서버실행) (0) | 2018.10.09 |
윈도우10에서 몽고DB 4.0 설치하기 (0) | 2018.10.09 |