កន្លងមក យើងបានប្រើប្រាស់ method ឈ្មោះ find() ក្នុងការស្រង់យក document ទាំងអស់មាននៅក្នុង collection ណាមួយមកប្រើការ។ ក៏ប៉ុន្តែ យើងក៏អាចស្រង់យកតែ document ណាយើងត្រូវការ ដោយប្រើប្រាស់ method ឈ្មោះ find() នេះបានដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": "Park Lane 38" } mydoc = mycol.find(myquery) for x in mydoc: print(x)
{'_id': 11, 'name': 'Ben', 'address': 'Park Lane 38'}
លើសពីនេះទៀត បើយើងចង់ស្រង់យកតែ document ណាដែលមានតំលៃនៅជាប់នឹង key 'address' ធំជាងអក្សរ "S" យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$gt": "S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x)
{'_id': 5, 'name': 'Michael', 'address': 'Valley 345'}
{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': 10, 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}
{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': 10, 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}
ហើយយើងក៏អាចប្រើប្រាស់ regular expression ក្នុងការស្វែងរកតំលៃនៅជា់បនឹង key ដែលជា "adddress" ចាប់ផ្តើមដោយអក្សរណាមួយបានដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x)
{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}