Python MongoDB Tìm kiếm

Trong MongoDB, chúng ta sử dụng phương pháp find và findOne để tìm dữ liệu trong bộ sưu tập.

Người ta sử dụng câu lệnh SELECT để tìm dữ liệu từ bảng trong cơ sở dữ liệu MySQL.

Tìm một phần tử

Để chọn dữ liệu từ bộ sưu tập trong MongoDB, chúng ta có thể sử dụng find_one() Phương pháp.

find_one() Phương pháp trả về phần tử đầu tiên khớp trong lựa chọn.

Mô hình

Tìm tài liệu đầu tiên trong bộ sưu tập "customers":

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

Chạy mô hình

Tìm tất cả

Để chọn dữ liệu từ bảng trong MongoDB, chúng ta có thể sử dụng find() Phương pháp.

find() Phương pháp trả về tất cả các phần tử khớp trong lựa chọn.

find() Tham số đầu tiên của phương pháp là đối tượng truy vấn. Trong ví dụ này, chúng ta sử dụng đối tượng truy vấn trống, nó sẽ chọn tất cả các tài liệu trong bộ sưu tập.

find() Phương pháp không có tham số cung cấp kết quả tương tự như SELECT * trong MySQL.

Mô hình

Trả về và in tất cả các tài liệu trong bộ sưu tập "customers":

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

Chạy mô hình

Chỉ trả về một số trường

find() Tham số thứ hai của phương pháp là đối tượng mô tả các trường chứa trong kết quả.

Tham số này là tùy chọn. Nếu bỏ qua, tất cả các trường sẽ được bao gồm trong kết quả.

Mô hình

Chỉ trả về tên và địa chỉ, không phải là _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)

Chạy mô hình

Không được chỉ định đồng thời giá trị 0 và 1 trong cùng một đối tượng (trừ khi một trong các trường là trường _id). Nếu chỉ định giá trị 0 cho trường, tất cả các trường khác sẽ có giá trị 1, ngược lại cũng vậy:

Mô hình

Ví dụ này loại bỏ "address" từ 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)

Chạy mô hình

Mô hình

Nếu đồng thời chỉ định giá trị 0 và 1 trong cùng một đối tượng, sẽ xảy ra lỗi (trừ khi 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)