본문 바로가기

과목/빅데이터

MongoDB Query document

MongoDB collection으로부터 어떻게 document를 질의 하는가?


MongoDB collection으로부터 데이터를 질의하기 위해 find() 메서드를 사용해야한다.


db.collection_name.find()


find() 메서드는 비 구조적인 방식으로 모든 document를 출력한다.


결과를 정형화된 방식으로 출력하려면 pretty() 메서드를 쓰면 된다.

db.collection_name.find().pretty()


하나의 document만 반환하는 findOne() 메서드도 있다.


MongoDB에서 RDBMS의 where 절과 같은 것

OperationSyntaxExampleRDBMS 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