Python MongoDB ค้นหา
- หน้าก่อน MongoDB ใส่
- หน้าต่อไป MongoDB คำอ่าน
ใน MongoDB พวกเราใช้วิธี find และ findOne ในการค้นหาข้อมูลในชุด
เหมือนที่คำสั่ง SELECT ใช้เพื่อค้นหาข้อมูลในตารางของฐานข้อมูล MySQL
ค้นหาสิ่งเดียว
หากต้องการเลือกข้อมูลจากชุดใน MongoDB พวกเราสามารถใช้ find_one()
ของ
find_one()
ของจะกลับค่าสิ่งที่ตรงกับเลือกแรก
ตัวอย่าง
ค้นหาเอกสารแรกในชุด customers
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] x = mycol.find_one() print(x)
ค้นหาทั้งหมด
หากต้องการเลือกข้อมูลจากตารางใน MongoDB พวกเรายังสามารถใช้ find()
ของ
find()
ของจะกลับค่าทุกสิ่งที่ตรงกับเลือก
find()
ของแรกคือวัตถุ query ในนี้ เราใช้วัตถุ query ว่าง ซึ่งจะเลือกทุกเอกสารในชุด
find()
ของไม่มีตัวแปรที่ให้ผลลัพธ์เหมือน SELECT * ใน MySQL
ตัวอย่าง
เรียกแสดงทุกเอกสารในชุด "customers" และพิมพ์แต่ละเอกสาร
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find(): print(x)
เพียงแค่ฟิลด์บางส่วน
find()
ของที่สองคือวัตถุที่เลือกเพื่ออธิบายฟิลด์ที่มีอยู่ในผลลัพธ์
ตัวเลือกนี้เป็นตัวเลือกได้ ถ้าละเลย จะมีการรวมทุกหมวดหมู่ทั้งหมดในผลลัพธ์
ตัวอย่าง
กลับมาแสดงชื่อและที่อยู่เท่านั้น ไม่ใช่ _ids:
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }): print(x)
ไม่อนุญาตให้ระบุค่า 0 และ 1 ในวัตถุเดียวกัน (เว้นเสียแต่หนึ่งในรหัสส่วนบุคคล _id). ถ้าระบุค่า 0 ให้กับหมวดหมู่ แล้ว ทุกหมวดหมู่อื่นจะมีค่า 1 และเช่นเดียวกันกับกัน:
ตัวอย่าง
ตัวอย่างนี้นำ "address" ออกจากผลลัพธ์
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find({},{ "address": 0 }): print(x)
ตัวอย่าง
ถ้าระบุค่า 0 และ 1 ในวัตถุเดียวกัน จะเกิดข้อผิดพลาด (เว้นเสียแต่หนึ่งในรหัสส่วนบุคคล _id):
import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find({},{ "name": 1, "address": 0 }): print(x)
- หน้าก่อน MongoDB ใส่
- หน้าต่อไป MongoDB คำอ่าน