• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mongodb] Python - MongoDB Query (검색 쿼리)

3553  
목차
  1. 결과 필터링 - 컬럼값 이용
  2. 고급 검색 쿼리
  3. 결과 필터링 - 정규식 이용

 

결과 필터링 - 컬럼값 이용

 

컬렉션에서 문서를 찾을 때 query 객체 사용해 결과를 필터링 가능.

find() 메서드의 첫 번째 인수는 query 객체이며 검색 필터링에 사용.

 


[예제]

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

myquery = { "mb_level": "5" }

mydoc = mycol.find(myquery)

for x in mydoc:

  print(x)

 

결과값:

{'_id': 11, 'mb_name': 'KKK', 'mb_level': '5'}

{'_id': 12, 'mb_name': 'LLL', 'mb_level': '5'}

{'_id': 13, 'mb_name': 'MMM', 'mb_level': '5'}

{'_id': 14, 'mb_name': 'NNN', 'mb_level': '5'} 

 

고급 검색 쿼리

 

※ 수정자를 query 객체에 사용.

$gt : 보다 큰 (greater than)

$lt : 보다 작은 (less than)

$eq : 같은 (equal)

 


[예제1] mb_level 필드 값이 3 이상이 문서 가져오기.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

myquery = { "mb_level": {"$gt": "3"} }

mydoc = mycol.find(myquery)

for x in mydoc:

  print(x)

 

결과값:

{'_id': 7, 'mb_name': 'GGG', 'mb_level': '4'}

{'_id': 8, 'mb_name': 'HHH', 'mb_level': '4'}

{'_id': 9, 'mb_name': 'III', 'mb_level': '4'}

{'_id': 10, 'mb_name': 'JJJ', 'mb_level': '4'}

{'_id': 11, 'mb_name': 'KKK', 'mb_level': '5'}

{'_id': 12, 'mb_name': 'LLL', 'mb_level': '5'}

{'_id': 13, 'mb_name': 'MMM', 'mb_level': '5'}

{'_id': 14, 'mb_name': 'NNN', 'mb_level': '5'}


[예제2] mb_level 값이 3보다 작은 문서 가져오기

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

myquery = { "mb_level": {"$lt": "3"} }

mydoc = mycol.find(myquery)

for x in mydoc:

  print(x)

 


[예제3] mb_level 값이 3인 문서만 가져오기.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

myquery = { "mb_level": {"$eq": "3"} }

mydoc = mycol.find(myquery)

for x in mydoc:

  print(x)

 

결과값:

{'_id': 1, 'mb_name': 'AAA', 'mb_level': '1'}

{'_id': 2, 'mb_name': 'BBB', 'mb_level': '2'}

{'_id': 3, 'mb_name': 'CCC', 'mb_level': '2'}

 

 

결과 필터링 - 정규식 이용

 

※ 정규식을 검색 query에 사용 가능.

※ 정규식은 문자열 쿼리에만 사용 가능.

(예제) 

{"$regex": "^H"} : H로 시작하는 문서 선택.

 


[예제] mb_name 값이 H로 시작하는 문서 가져오기.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

myquery = { "mb_name": { "$regex": "^H" }}

mydoc = mycol.find(myquery)

for x in mydoc:

  print(x)

 

결과값: {'_id': 8, 'mb_name': 'HHH', 'mb_level': '4'} 



분류 제목
mongodb Python - MongoDB Limit (데이터 출력개수)
module Python - random 모듈 메서드 종류
module Python - random.seed() 메서드 - 난수 생성기 초기화 (= seed메서드 = 시드)
module Python - random.getstate() 메서드 - 난수 생성기 현재 상태 반환. (= getstat…
module Python - random.setstate() 메서드 - 난수 생성기 상태 복원. (= setstate메서…
module Python - random.getrandbits() 메서드 ★ - 지정 bit 크기의 정수 반환. (= g…
module Python - random.randrange() 메서드 ★★ - 지정 범위 안에서 정수형 난수 반환. (=…
module Python - random.randint() 메서드 ★★ - 지정 범위 안 int형 난수 생성. (= ra…
module Python - random.choice() 메서드 ★★ - 요소 랜덤 반환. (= choice메서드 = 초…
module Python - random.choices() 메서드 - 가중치 반영해 랜덤 요소 반환. (= choices…
module Python - random.shuffle() 메서드 ★★ - 요소 순서 뒤섞기. (= 순서 랜덤 = shu…
module Python - random.sample() 메서드 ★ - 일부 요소 랜덤 선택. (= sample메서드 =…
module Python - random.random() 메서드 ★ - 0 ~ 1 사이 부동소수 랜덤 반환. (= ran…
module Python - random.uniform() 메서드 ★ - 지정 범위 안 랜덤 부동소수 반환. (= uni…
module Python - random.triangular() 메서드 - 지정 범위 안 가중치 반영 랜덤 부동소수 반환…
module Python - random.betavariate() 메서드 △ - 베타분포 (통계용) 기반 0~1 사이 랜…
module Python - random.expovariate() 메서드 △ - 지수분포 (통계용) 기반 랜덤 부동소수 …
module Python - random.gammavariate() 메서드 △ - 감마분포 (통계용) 기반 랜덤 부동소수…
module Python - random.gauss() 메서드 △ - 가우스분포 (확률이론용) 기반 랜덤 부동소수 반환.
module Python - random.lognormvariate() 메서드 △ - 로그정규분포 (확률이론용) 기반 랜…
4/24
목록
찾아주셔서 감사합니다. Since 2012