본문 바로가기

몽고디비(mongo db)

몽고디비(Mongo db) 의 검색조건 코드 및 파이썬 연산자 비교

> db.emp.find(
              { job : {$eq:'ANALYST'} },
              { _id: 0, ename:1, job:1, sal:1} 
              )

몽고디비는 NoSQL 이기 때문에 SQL과 코드 입력 방식이 다르다. 

 

몽고디비의 검색 조건 코드를 알아보자!

db.테이블명.find(  { 검색조건}, {출력할 컬럼들}  )

                                      ↓                      ↓

                       컬럼명: {연산자:값}    컬럼명:1

                                                           

 

검색 조건 안에  "컬럼명: {연산자:값} " 를 넣고

출력할 컬럼들에 "컬럼명:1" 을 넣으면 된다 (여기서 1은 컬럼명이 출력되는 것, 0을 넣으면 출력이 안되는 것이다)

 

기본 예제를 보자(emp 테이블)

예제 1. 부서번호가 30번인 사원들의 이름, 월급, 사원번호를 조회해보자

> db.emp.find( { deptno : {$eq:10} } ,
              {_id:0 , empno :1 ,ename:1,sal:1}  )

 

 

몽고디비는 > 표시만 나온다. 

여기서 $eq 는 같다는 뜻이다. 

그리고 _id: 0 은 컬럼 _id 는 출력되지 않게 하라는 뜻이다. 몽고디비로 검색을 하면 

_id 가 출력이 되더라..

 

 

몽고디비에서 사용하는 연산자를 파이썬과 비교해보자! 

[1] 비교 연산자 

몽고디비 파이썬
$eq ==
$gt >
$gte >=
$lt <
$lte <=
$ne !=

[2] 논리 연산자

몽고디비 파이썬
$and and
$or or
$not ~

[3] 산술 연산자

몽고디비 파이썬
$add +
$substract -
$multiply *
$devide /
$mod %

 

emp 테이블을 이용해 몽고디비로 몇가지 문제를 풀어보자 

 

1. 월급이 2000 이하인 사원들의 이름, 월급을 출력하시오

> db.emp.find(
               {sal: $lte:2000},
               {_id:0, ename:1,sal:1}
               )

2. 직업이 ANALYST인 사원들의 이름, 직업, 월급을 출력하시오