5 เม.ย. 2021 เวลา 02:00 • การศึกษา
MongoDB : EP04 - การค้นหาข้อมูลใน MongoDB
Find Data In MongoDB
การค้นหา ( Find ) ใน MongoDB นั้นสามารถทำได้ทั้งค้นหาเพียงข้อมูลเดียว และแบบหลายข้อมูล โดยในบทความนี้จะเน้นไปที่ Find One และ Find All โดยยังไม่มีการค้นหา ( Find ) ชนิด Filter หรือคิวรี่ ( Query ) ซึ่งจะอธิบายในบทความต่อๆไป
1. การค้นหาข้อมูล 1 ชุด ( Find One )
Find One
ทำการสร้างฟังก์ชั่นสำหรับค้นหาข้อมูล 1 ชุด ภายในคลาส ( Class ) : MongoDB ดังนี้
- get_data() : ภายในฟังก์ชั่นทำการเรียกใช้งานคำสั่ง find_one() ซึ่งเป็นฟังก์ชั่นของ PyMongo ซึ่งเมื่อมีการเรียกใช้งานฟังก์ชั่นนี้ จะทำการดึงข้อมูลที่อยู่ลำดับแรกจาก Collection มาแสดง
Test Find One
ทดสอบการทำงานของฟังก์ชั่น โดยการเรียกใช้งานฟังก์ชั่น get_data() จากนั้นเมื่อรันโปรแกรมข้อมูลที่ได้ก็จะได้ข้อมูลเป็น Row แรกคือ
{
'_id': ObjectId('6068407bf6c3a0e92afc650c'),
'name': 'l3oxME',
'age': 20,
'salary': 25000,
'created': '2021-04-03T17:16:27.561692'
}
2. การค้นหาข้อมูลทั้งหมด ( Find All )
Find All
ในส่วนการค้นหาทั้งหมด (​ Find All ) นั้นทำได้โดยสร้างฟังก์ชั่นภายในคลาส ( Class ) : MongoDB
- get_datas() : ซึ่งภายในฟังก์ชั่นมีการเรียกใช้งานคำสั่ง find() ของ PyMongo ซึ่งกรณีไม่มีการ Filter ข้อมูล ก็จะเป็นการค้นหาข้อมูลออกมาทั้งหมดจาก Collection
Test Find All
ทดสอบการค้นหาข้อมูลทั้งหมด โดยการเรียกใช้งานฟังก์ชั่น get_datas() จากนั้นทำการรันโปรแกรม ข้อมูลที่ได้จะเป็นข้อมูลลักษณ์ Objects เราสามารถแสดงรายการข้อมูลในแต่ละ Row โดยการวนลูป ( Loop ) เพื่อแสดงค่าออกมา ซึ่งผลลัพธ์ที่ได้ออกมาดังนี้
{
'_id': ObjectId('60684a4042b575b5fb070aa8'),
'name': 'l3oxME-01',
'age': 20,
'salary': 25000,
'created': '2021-04-03T17:58:08.679669'
}
{
'_id': ObjectId('60684a4042b575b5fb070aa9'),
'name': 'l3oxME-02',
'age': 25,
'salary': 20000,
'created': '2021-04-03T17:58:08.679745'
}
{
'_id': ObjectId('60684a4042b575b5fb070aaa'),
'name': 'l3oxME-03',
'age': 30,
'salary': 30000,
'created': '2021-04-03T17:58:08.679753'
}
** หมายเหตุ : กรณีที่มีข้อมูลจำนวนที่เยอะมากๆ ไม่ควรใช้วิธีดึงข้อมูลในลักษณะนี้ เพราะจะทำให้ใช้เวลาโหลดข้อมูลนานขึ้น ควรเปลี่ยนใช้วิธีอื่นเช่น การคิวรี่ (​Query) เป็นต้น
โฆษณา