01.MongoDB 기초 - Pymongo 정리-2
🌈 Pymongo 문법 정리
🔥 필드값 범위로 출력 : 논리연산자 사용하기(nor)
🔥 포함여부로 출력 : in 과 nin
🔥 skip()과 limit()
🔥 리스트(list) 형태의 value값을 대상으로 검색
🔥 정규 표현식으로 부분 문자열 검색
6. 필드값 범위로 출력 : 논리연산자 사용하기(nor)
- nor 는 not or 의 줄임말로 둘다 아닌 것을 뜻하게 됨.
- 🔍 흥행지수가 10000보다 크지 않은 것과 1000보다 작지 않는 것(10000이하, 1000이상)
{ '$nor': [{'흥행지수': {'$gt':10000}}, {'흥행지수': {"$lt":1000}}] }
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find( { '$nor': [{'흥행지수': {'$gt':10000}}, {'흥행지수': {"$lt":1000}}] }, {'배우이름':1,'흥행지수':1,'_id':0} ) for doc in docs: print(doc)
7. 해당 value 유무에 따른 document 출력 : in 과 nin
- in : 포함되있다(들어가 있는 것)
- 🔍 흥행지수가 5674, 9702, 5463 이 포함된 것
- { '흥행지수' : {"$in" : [5674, 9702, 5463]}}
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({ '흥행지수' : {"$in" : [5674, 9702, 5463]}}, {'배우이름':1,'흥행지수':1,'_id':0} ) for doc in docs: print(doc)
- nin : 제외되있다(들어가지 않은 것)
- 🔍 흥행지수가 5674, 9702, 5463 이 포함된 것
- { '흥행지수' : {"$in" : [5674, 9702, 5463]}}
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({ '흥행지수' : {"$nin" : [5674, 9702, 5463]}}, {'배우이름':1,'흥행지수':1,'_id':0} ).limit(10) for doc in docs: print(doc)
- 🔍 흥행지수가 9182, 8439가 아니고, 10000 이하인 데이터를 3개만 검색해보기(배우이름과 흥행지수만 출력)
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({ '$nor': [{'흥행지수': {'$gt':10000}}, {'흥행지수': {"nin":[ 9182, 8439 ]}}] }, {'배우이름':1,'흥행지수':1,'_id':0} ).limit(3) for doc in docs: print(doc)
8. skip()과 limit()
- limit(n) : 검색결과를 n개만 표시
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'흥행지수':{'$gte':10000}}).limit(10) for doc in docs: print(doc)
- skip(n) : 검색결과를 n만큼 건너 띔
- "limit(10).skip(5)"은 해당 조건에 일치하는 document를 5개씩 건너띄면서 총 10개를 출력한다는 의미
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'흥행지수':{'$gte':10000}}).limit(10).skip(5) for doc in docs: print(doc)
9. 리스트(list) 형태의 value값을 대상으로 검색
- list로 된 value 값을 검색할 때, '$all' 통해 조건에 해당하는 모든 값을 찾을 수 있음
- '$all'은 순서에 상관없이 그 요소를 포함하고 있는 모든 documnet를 반환함
- 리스트로된 key('출연영화')에 '신세계'와 '사하바'가 모두 포함된 document를 전부 출력
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'출연영화':{'$all':['신세계', '사바하']}}) for doc in docs: print(doc)
- key값에 .[index번호]를 통해 인덱스를 기준으로 해당되는 데이터값을 찾을 수 있음
- 리스트로된 '출연영화' key에 2번째 요소가 '신세계'인 모든 document를 출력하라
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'출연영화.1':'신세계'}) for doc in docs: print(doc)
- 리스트로된 key값의 size를 통해서도 검색할 수 있음
- '흥행영화'가 5개 이상인 documents만 출력
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'출연영화':{'$size':5}}) for doc in docs: print(doc)
10. 정규 표현식으로 부분 문자열 검색
- 정규표현식 '$regex'을 이용해서 텍스트 일부를 검색 조건으로하여 일치하는 것을 검색 가능
- find({'필드명' : {'$regex': '검색어'}})
- 🔍 출연영화에서 '다만'이라는 text를 포함한 documents를 모두 출력
✍🏻 python
import pymongo # mongodb connection conn = pymongo.MongoClient() # pymongo로 mongodb 연결(localhost:27017) actor_db = conn.cine21 actor_collection = actor_db.actor_collection docs = actor_collection.find({'출연영화':{'$regex':'다만'}}) for doc in docs: print(doc)
Author And Source
이 문제에 관하여(01.MongoDB 기초 - Pymongo 정리-2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jewon119/01.MongoDB-기초-Pymongo-정리-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)