Python MongoDB Tìm
Trong MongoDB, chúng tôi sử dụng phương thức find và findOne để tìm dữ liệu trong một tập hợp.
Giống như câu lệnh SELECT được sử dụng để tìm dữ liệu trong bảng trong cơ sở dữ liệu MySQL.
Tìm một
Để chọn dữ liệu từ một tập hợp trong MongoDB, chúng ta có thể sử dụng
find_one()
phương pháp này.
Phương find_one()
thức trả về lần xuất hiện đầu tiên trong vùng chọn.
Thí dụ
Tìm tài liệu đầu tiên trong bộ sưu tập khách hàng:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Tìm tất cả
Để chọn dữ liệu từ một bảng trong MongoDB, chúng ta cũng có thể sử dụng
find()
phương pháp này.
Phương find()
thức trả về tất cả các lần xuất hiện trong vùng chọn.
Tham số đầu tiên của find()
phương thức là một đối tượng truy vấn. Trong ví dụ này, chúng tôi sử dụng một đối tượng truy vấn trống, đối tượng này sẽ chọn tất cả các tài liệu trong bộ sưu tập.
Không có tham số nào trong phương thức find () cho bạn kết quả giống như SELECT * trong MySQL.
Thí dụ
Trả lại tất cả tài liệu trong bộ sưu tập "khách hàng" và in từng tài liệu:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Chỉ trả lại một số trường
Tham số thứ hai của find()
phương thức là một đối tượng mô tả những trường nào cần đưa vào kết quả.
Tham số này là tùy chọn và nếu bỏ qua, tất cả các trường sẽ được đưa vào kết quả.
Thí dụ
Chỉ trả lại tên và địa chỉ, không trả về _id:
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)
Bạn không được phép chỉ định cả giá trị 0 và 1 trong cùng một đối tượng (ngoại trừ trường hợp một trong các trường là trường _id). Nếu bạn chỉ định một trường có giá trị 0, tất cả các trường khác sẽ nhận giá trị 1 và ngược lại:
Thí dụ
Ví dụ này sẽ loại trừ "địa chỉ" khỏi kết quả:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Thí dụ
Bạn gặp lỗi nếu chỉ định cả giá trị 0 và 1 trong cùng một đối tượng (ngoại trừ nếu một trong các trường là trường _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)