Python 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)