본문 바로가기

CS+/SQL

MongoDB 입문 2단계 document 읽기(검색) find

이 포스팅은 인프런의 'NoSQL/DB(몽고DB) 기초와 파이썬 활용' 강의를 들으면서 정리한 내용입니다 :)

 

mongodb 에서 document 를 읽을 때는 

아래와 같은 형태로 find를 쓰면 됩니다.

 

우선 employees 컬렉션을 만들고 document를 집어넣겠습니다. 

 

 

 

 

 

 

컬렉션을 만들고 5개의 Doc 가 들어가 있습니다. 

 

이제 정리를 위해 터미널에서 명령어들을 실행해보겠습니다.

 

 

 

지금부터 read 명령어들을 rdbms 와 비교해서 설명하겠습니다. 

비유한 rdbms 의 쿼리문 정도는 알고 계신다고 생각하고 설명하겠습니다 :)  

 

 

db.컬렉션.find() 

-> SELECT * FROM 테이블명

과 같은 명령어입니다.

 

db.people.find({ }, { user_id: 1, status: 1 }) 

-> SELECT _id, user_id, status FROM people

 

db.people.find({ },{ user_id: 1, status: 1, _id: 0 })

-> SELECT user_id, status FROM people

 

db.people.find({ status: "A" })

-> SELECT * FROM people WHERE status = "A"

 

db.people.find({ status: "A", age: 50 })

-> SELECT * FROM people WHERE status = "A" AND age = 50

 

db.people.find({ $or: [ { status: "A" } , { age: 50 } ] })

-> SELECT * FROM people WHERE status = "A" OR age = 50

 

자, 그러면 간단한 문제를 풀어보겠습니다. 

 

 

 

정답 공개! 

 

-1번-

 

 

-2번-

 

 

-3번- 

 

 

 

계속해서 비교문법을 다뤄보겠습니다.

 

위에서 집어넣은 데이터들을 확인해보구요. 

 

 

 

아래의 표를 기억해주세요!

강사님이 정리해주신 비교문법 표입니다 :) 

 

eq 는 equal 의 줄임말

gt 는  greater 의 줄임말 

gte 는 greate than or equal 의 줄임말 임을

위 표를 통해 확인할 수 있습니다. 

 

몇 가지 비교문법을 적용한 예제입니다. 

 

find 안에서 먼저 기준으로 삼으려는 키값을 넣어줍니다 (age) 

그 다음 조건을 비교문법얼 이용해서 적어줍니다. 

예를 들어 30 이상 이라는 조건을 넣으려고 한다면 { $lt: 30 } 으로 넣어줍니다.

 

 

 

검색도 똑같습니다. bc 라는 글자가 들어간 것을 찾가 싶다면

먼저 기준인 user_id 라고 입력해주고 그 뒤에 조건을 넣어주세요. 

'bc'가 들어간 Document 만 보여줘 라고 하려면 

/bc/ 

를 입력해줍니다.  위에서 슬러시는 bc 만 들어있으면 앞에 있든 중간에 있든, 맨 뒤에 있든 상관없이 검색을 해줍니다. 

 

만약에 "bc" 라고 조건을 넣는다면 bc 만 있는 Docu를 검색해줍니다.

쌍따옴표일 때와 슬러시일때의 검색 조건이 다르게 적용한다점 기억해주세요~

 

 

아래는 count 를 해보는 예제입니다. 한 번 보시고 따라하시면 감이 옵니다 :) 

robo 에서 실습해보겠습니다. 

 

문제를 풀어보겠습니다.

 

 

 

 

 

문제 순서대로 정답을 나열했습니다. 

참고하셔서 맞춰 보시면 될 것 같습니다 :)

 

 

 

이상 포스팅 마치겠습니다 :)