Truy vấn Python MongoDB
Lọc kết quả
Khi tìm tài liệu trong một bộ sưu tập, bạn có thể lọc kết quả bằng cách sử dụng một đối tượng truy vấn.
Đối số đầu tiên của find()
phương thức là một đối tượng truy vấn và được sử dụng để giới hạn tìm kiếm.
Thí dụ
Tìm (các) tài liệu có địa chỉ "Park Lane 38":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Truy vấn nâng cao
Để thực hiện các truy vấn nâng cao, bạn có thể sử dụng công cụ sửa đổi làm giá trị trong đối tượng truy vấn.
Ví dụ: để tìm các tài liệu trong đó trường "địa chỉ" bắt đầu bằng chữ "S" hoặc cao hơn (theo thứ tự bảng chữ cái), hãy sử dụng công cụ sửa đổi lớn hơn
{"$gt": "S"}
::
Thí dụ
Tìm tài liệu có địa chỉ bắt đầu bằng chữ "S" hoặc cao hơn:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Lọc với các biểu thức chính quy
Bạn cũng có thể sử dụng biểu thức chính quy làm công cụ sửa đổi.
Biểu thức chính quy chỉ có thể được sử dụng để truy vấn chuỗi .
Để chỉ tìm các tài liệu có trường "địa chỉ" bắt đầu bằng chữ "S", hãy sử dụng biểu thức chính quy {"$regex": "^S"}
:
Thí dụ
Tìm tài liệu có địa chỉ bắt đầu bằng chữ "S":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)