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

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

3560  
목차
  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'} 



분류 제목
module Python - random.normalvariate() 메서드 △ - 정규분포 (확률이론용) 기반 랜덤 …
module Python - random.vonmisesvariate() 메서드 △ - 폰미제스분포 (방향통계) 기반 랜…
module Python - random.paretovariate() 메서드 △ - 파레토분포 (확률이론) 기반 랜덤 부…
module Python - random.weibullvariate() 메서드 △ - 베이블분포 (통계) 기반 랜덤 부동…
module Python - requests 모듈 메서드 종류 (※ 요청 모듈)
module Python - requests.delete() 메서드 - 지정 URL에 DELETE 요청 보냄. (= de…
module Python - requests.get() 메서드 - 지정 URL에 GET 요청 보냄. (= get메서드 =…
module Python - requests.head() 메서드 - 지정 URL에 HEAD 요청 보냄. (= head메서…
module Python - requests.patch() 메서드 △ - 지정 URL에 PATCH 요청 보냄. (= pa…
module Python - requests.post() 메서드 -
module Python - requests.put() 메서드 △ - 지정 URL에 PUT 요청 보냄. (= put메서드…
module Python - requests.request() 메서드 △ - 지정 메서드의 요청을 지정 URL로 보냄. …
function Python - abs() 함수 ★ - 숫자의 절대값 반환. (= abs함수 = 앱스함수/에이비에스함수/앱솔…
function Python - all() 함수 - 반복 가능 객체의 요소가 모두 True인지 체크. (= all함수 = 올…
function Python - any() 함수 - 반복 가능 객체의 요소가 하나라도 True인지 체크. (= any함수 =…
function Python - ascii() 함수 - 객체의 읽기 가능 버전 반환. (= ascii함수 = 아스키함수)
function Python - bin() 함수 - 정수의 이진수 값 반환. (= bin함수 = 빈함수/바이너리함수)
function Python - bool() 함수 ★ - 객체의 참거짓 반환. (= 참인지 거짓인지 판별 = bool함수 =…
function Python - bytearray() 함수 - 바이트 배열 생성. (= bytearray함수 = 바이트어레이…
function Python - bytes() 함수 - 바이트 객체 반환. (= bytes함수= 바이츠함수)
5/24
목록
찾아주셔서 감사합니다. Since 2012