Python - MongoDB 활용 001 (커넥션, Insert)            : http://ngee.tistory.com/335

Python - MongoDB 활용 002 (update, collection list) : http://ngee.tistory.com/336

Python - MongoDB 활용 003 (find)                         : http://ngee.tistory.com/339 현재 포스팅

Python - MongoDB 활용 004 (remove)                    : http://ngee.tistory.com/340

Python - MongoDB 활용 005 (find_one)                  : http://ngee.tistory.com/344


위 포스팅에 이어서 계속 작성합니다.


find


find 함수는 데이터베이스에서 내가 원하는 데이터를 찾아주는 역할을 합니다.


인자 없이 사용하는 경우에는 해당 Collection의 모든 데이터를 찾아서 리턴해주고요.

인자를 활용하는 경우에는 해당 Collection의 데이터 중 입력 인자에 따라서 데이터를 찾아서 리턴해줍니다.


먼저 인자 없이 사용하는 경우를 보시면 다음과 같습니다. 


일단 아래와 같이 데이터가 저장되어 있다고 가정부터 하겠습니다.

간단하게 student_id가 0~99까지 (100개)의 값을 가지도록 입력했습니다.


{u'student_id': 0, u'_id': ObjectId('536a82d1ae3e83310b131955')}

{u'student_id': 1, u'_id': ObjectId('536a82d2ae3e83310b131956')}

{u'student_id': 2, u'_id': ObjectId('536a82d2ae3e83310b131957')}

{u'student_id': 3, u'_id': ObjectId('536a82d2ae3e83310b131958')}

{u'student_id': 4, u'_id': ObjectId('536a82d2ae3e83310b131959')}

{u'student_id': 5, u'_id': ObjectId('536a82d2ae3e83310b13195a')}

{u'student_id': 6, u'_id': ObjectId('536a82d2ae3e83310b13195b')}

{u'student_id': 7, u'_id': ObjectId('536a82d2ae3e83310b13195c')}

{u'student_id': 8, u'_id': ObjectId('536a82d2ae3e83310b13195d')}

{u'student_id': 9, u'_id': ObjectId('536a82d2ae3e83310b13195e')}

{u'student_id': 10, u'_id': ObjectId('536a82d2ae3e83310b13195f')}

{u'student_id': 11, u'_id': ObjectId('536a82d2ae3e83310b131960')}

{u'student_id': 12, u'_id': ObjectId('536a82d2ae3e83310b131961')}

{u'student_id': 13, u'_id': ObjectId('536a82d2ae3e83310b131962')}

.....

.....

{u'student_id': 91, u'_id': ObjectId('536a82d2ae3e83310b1319b0')}

{u'student_id': 92, u'_id': ObjectId('536a82d2ae3e83310b1319b1')}

{u'student_id': 93, u'_id': ObjectId('536a82d2ae3e83310b1319b2')}

{u'student_id': 94, u'_id': ObjectId('536a82d2ae3e83310b1319b3')}

{u'student_id': 95, u'_id': ObjectId('536a82d2ae3e83310b1319b4')}

{u'student_id': 96, u'_id': ObjectId('536a82d2ae3e83310b1319b5')}

{u'student_id': 97, u'_id': ObjectId('536a82d2ae3e83310b1319b6')}

{u'student_id': 98, u'_id': ObjectId('536a82d2ae3e83310b1319b7')}

{u'student_id': 99, u'_id': ObjectId('536a82d2ae3e83310b1319b8')}


위와 같이 데이터베이스에 입력하는 소스는 아래와 같습니다.

#!/usr/bin/python 

import pymongo


connection = pymongo.MongoClient("localhost", 27017)

db = connection.testDB

collection  = db.student


for i in range(0, 100):

  collection.insert({"student_id":i})


이제 find를 해보죠.
일단 인자 없이 find하는 소스를 보시죠.

#!/usr/bin/python 
import pymongo

connection = pymongo.MongoClient("localhost", 27017)
db = connection.testDB
collection  = db.student

#for i in range(0, 100):
#  collection.insert({"student_id":i})

docs = collection.find()

for i in docs:
  print i

출력결과는 위에 있는 노란색 박스와 동일하겠죠.


그렇다면 student_id가 90보다 큰 것을 찾아달라고 할 때는 어떻게 하는지 소스를 보시죠.


#!/usr/bin/python 
import pymongo

connection = pymongo.MongoClient("localhost", 27017)
db = connection.testDB
collection  = db.student

#for i in range(0, 100):
#  collection.insert({"student_id":i})

docs = collection.find({"student_id": {"$gt":90}})

for i in docs:
  print i

$gt를 활용하시면 쉽게 하실 수 있죠.

출력결과는 아래와 같구요.

{u'student_id': 91, u'_id': ObjectId('536a82d2ae3e83310b1319b0')}
{u'student_id': 92, u'_id': ObjectId('536a82d2ae3e83310b1319b1')}
{u'student_id': 93, u'_id': ObjectId('536a82d2ae3e83310b1319b2')}
{u'student_id': 94, u'_id': ObjectId('536a82d2ae3e83310b1319b3')}
{u'student_id': 95, u'_id': ObjectId('536a82d2ae3e83310b1319b4')}
{u'student_id': 96, u'_id': ObjectId('536a82d2ae3e83310b1319b5')}
{u'student_id': 97, u'_id': ObjectId('536a82d2ae3e83310b1319b6')}
{u'student_id': 98, u'_id': ObjectId('536a82d2ae3e83310b1319b7')}
{u'student_id': 99, u'_id': ObjectId('536a82d2ae3e83310b1319b8')}

참고로 $lt 는  less than 입니다.



+ Recent posts