목차
결과 필터링 - 컬럼값 이용
고급 검색 쿼리
결과 필터링 - 정규식 이용
결과 필터링 - 컬럼값 이용
컬렉션에서 문서를 찾을 때 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'}
주소 복사
랜덤 이동
최신댓글