MongoDB collection으로부터 어떻게 document를 질의 하는가?
MongoDB collection으로부터 데이터를 질의하기 위해 find() 메서드를 사용해야한다.
db.collection_name.find()
find() 메서드는 비 구조적인 방식으로 모든 document를 출력한다.
결과를 정형화된 방식으로 출력하려면 pretty() 메서드를 쓰면 된다.
db.collection_name.find().pretty()
하나의 document만 반환하는 findOne() 메서드도 있다.
MongoDB에서 RDBMS의 where 절과 같은 것
Operation | Syntax | Example | RDBMS Equivalent |
---|---|---|---|
Equality | {<key>:<value>} | db.mycol.find({"by":"tutorials point"}).pretty() | where by = 'tutorials point' |
Less Than | {<key>:{$lt:<value>}} | db.mycol.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
Less Than Equals | {<key>:{$lte:<value>}} | db.mycol.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
Greater Than | {<key>:{$gt:<value>}} | db.mycol.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
Greater Than Equals | {<key>:{$gte:<value>}} | db.mycol.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
Not Equals | {<key>:{$ne:<value>}} | db.mycol.find({"likes":{$ne:50}}).pretty() | where likes != 50 |
find()메서드에서 여러 개의 key를 ,로 분리해서 전달하면 MongoDB는 이걸 AND 조건으로 취급한다.
>db.mycol.find( { $and: [ {key1: value1}, {key2:value2} ] } ).pretty()
다음 예는 tutorials point에 의해 쓰여지고 title이 MongoDB Overview인 모든 것을 보여준다.
>db.mycol.find({$and:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" }
RDBMS에서의 where by = 'tutorials point' AND title = 'MongoDB Overview'와 같다. find 절에서 키 값 쌍의 수를 전달할 수 있다.
MongoDB에서의 OR
$or 조건을 써야한다.
>db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()
다음 예는 tutorials point에 의해 쓰여졌거나 title이 MongoDB Overview인 것을 모든 것을 보여준다.
>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
다음 예는 likes가 10보다 크고 title이 MongoDB Overview 이거나 by가 tutorial point인 모든 document를 보여준다.
SQL의 where likes > 10 and (by = 'tutorial point' or title = 'MongoDB Overview')와 같다.
likes는 무조건 10보다 커야하며 by가 tutorial point 이거나 title이 MongoDB Overview이면 된다.
'과목 > 빅데이터' 카테고리의 다른 글
MongoDB Delete Remove (0) | 2018.04.28 |
---|---|
MongoDB Update, Save (0) | 2018.04.28 |
MongoDB 삽입 (0) | 2018.04.28 |
MongoDB Data Types (0) | 2018.04.28 |
MongoDB drop() Method (0) | 2018.04.28 |