ស្រង់​យក​ទិន្នន័យ​មាន​ចំនួន​កំណត់

កន្លង​មក យើង​បាន​ប្រើប្រាស់ 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'}

ហើយ​យើង​ក៏​អាច​ប្រើប្រាស់ 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'}