Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
l3oxME
•
ติดตาม
6 เม.ย. 2021 เวลา 02:00 • การศึกษา
MongoDB : EP05 - การค้นหาข้อมูลใน MongoDB ประเภทฟิวเตอร์ ( Filters )
Find With Filters
การค้นหาข้อมูลอีกรูปแบบที่มีการนำไปใช้งานจริง ก็คือการค้นข้อมูลในรูปแบบการฟิลเตอร์ ( Filter ) ซึ่งจะช่วยในการค้นหาข้อมูลที่ต้องการได้ โดยในบทความนี้จะอธิบายในภาพรวมหลักๆคือการคิวรี่ ( Query ) , การทำ Pagination
1. การค้นหาข้อมูลแบบการใช้ฟิลเตอร์ ( Filter )
Query Datas
ทำการสร้างฟังก์ชั่นที่ใช้สำหรับค้นหาข้อมูล ( Query ) ชนิดที่สามารถฟิลเตอร์ ( Filter ) ภายในคลาส ( Class ) : MongoDB ดังนี้
- query_datas() : ภายในฟังก์ชั่นมีการเรียกใช้งานคำสั่งของ PyMongo เหมือนกันกับฟังก์ชั่น get_datas() เพียงแต่ในครั้งนี้มีการส่งค่า query_set เพื่อทำการฟิลเตอร์ ( Filter ) ข้อมูลที่ต้องการ
Test Find by ObjectID
แบบแรก เป็นการทดสอบการค้นหา ( Query ) แบบฟิวเตอร์ ( Filter ) ข้อมูลโดยตรง ดังตัวอย่างเป็นการค้นหาด้วย ObjectID จากนั้นเมื่อทำการส่งข้อมูล query_set ไปในฟังก์ชั่น query_datas() เมื่อทำการรันโปรแกรม ผลลัพธ์ที่ได้จะเป็นข้อมูลที่มี ObjectID ตรงตาม query_set ดังนี้
{
'_id': ObjectId('6068407bf6c3a0e92afc650c'),
'name': 'l3oxME',
'age': 20,
'salary': 25000,
'created': '2021-04-03T17:16:27.561692'
}
Test Find by Salary Greate than 2000
จากนั้น ทำการทดสอบการค้นหา ( Query ) ด้วยวิธีการฟิลเตอร์ ( Filter ) เอาเฉพาะช่วงข้อมูลที่ต้องการ โดยในตัวอย่างเป็นการค้นหาข้อมูลด้วยการฟิลเตอร์ ( Filter ) เอาเฉพาะข้อมูลที่ มี "salary" มากกว่า 20000 ขึ้นไป โดยผลลัพธ์ที่ได้จะเป็นข้อมูลที่มี "salary" ที่มากกว่า 20000 ดังนี้
{
'_id': ObjectId('60684a4042b575b5fb070aa8'),
'name': 'l3oxME-01',
'age': 20,
'salary': 25000,
'created': '2021-04-03T17:58:08.679669'
}
{
'_id': ObjectId('60684a4042b575b5fb070aaa'),
'name': 'l3oxME-03',
'age': 30,
'salary': 30000,
'created': '2021-04-03T17:58:08.679753'
}
2. การค้นหาแบบเปลี่ยนตามจำนวนที่ต้องการ ( Pagination )
Pagination Datas
สร้างฟังก์ชั่นที่ใช้สำหรับการ Pagination ในคลาส ( Class ) : MongoDB โดยฟังก์ชั่นทำงานดังนี้
- pagination_datas() : ภายในฟังก์ชั่นเรียกใช้ คำสั่งของ PyMongo โดยมีความคล้ายฟังก์ชั่น query_datas() เพียงแต่มีการเพิ่มเติมคำสั่ง skip() สำหรับเลื่อนหน้า และคำสั่ง limit() ซึ่งไว้จำกัดจำนวนข้อมูลที่ต้องการ
Test Pagination
ทำการทดสอบโดยการกำหนดค่า limit , skip , query_set จากนั้นใส่ค่าไปในฟังก์ชั่น pagination_datas() แล้วทำการรันโปรแกรมผลลัพธ์ที่ได้มีดังนี้
- skip = 0 ผลลัพธ์คือ
{
'_id': ObjectId('60684a4042b575b5fb070aa8'),
'name': 'l3oxME-01',
'age': 20,
'salary': 25000,
'created': '2021-04-03T17:58:08.679669'
}
- skip = 1 ผลลัพธ์คือ
{
'_id': ObjectId('60684a4042b575b5fb070aa9'),
'name': 'l3oxME-02',
'age': 25,
'salary': 20000,
'created': '2021-04-03T17:58:08.679745'
}
- skip = 2 ผลลัพธ์คือ
{
'_id': ObjectId('60684a4042b575b5fb070aaa'),
'name': 'l3oxME-03',
'age': 30,
'salary': 30000,
'created': '2021-04-03T17:58:08.679753'
}
บันทึก
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย