Ví dụ sau truy xuất tất cả các tài liệu từ bộ sưu tập có tên mycol và sắp xếp chúng theo định dạng dễ đọc
> db.mycol.find().pretty() { "_id" : ObjectId("5dd4e2cc0821d3b44607534c"), "title" : "MongoDB Overview", "description" : "MongoDB is no SQL database", "by" : "tutorials point", "url" : "//www.tutorialspoint.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } { "_id" : ObjectId("5dd4e2cc0821d3b44607534d"), "title" : "NoSQL Database", "description" : "NoSQL database doesn't have tables", "by" : "tutorials point", "url" : "//www.tutorialspoint.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 20, "comments" : [ { "user" : "user1", "message" : "My first comment", "dateCreated" : ISODate("2013-12-09T21:05:00Z"), "like" : 0 } ] }Phương thức findOne()
Ngoài phương thức find(), còn có phương thức findOne() chỉ trả về một tài liệu
cú pháp
>db.COLLECTIONNAME.findOne()Thí dụ
Ví dụ sau truy xuất tài liệu có tiêu đề Tổng quan về MongoDB
> db.mycol.findOne({title: "MongoDB Overview"}) { "_id" : ObjectId("5dd6542170fb13eec3963bf0"), "title" : "MongoDB Overview", "description" : "MongoDB is no SQL database", "by" : "tutorials point", "url" : "//www.tutorialspoint.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }RDBMS Where Mệnh đề tương đương trong MongoDB
Để truy vấn tài liệu trên cơ sở một số điều kiện, bạn có thể sử dụng các thao tác sau
OperationSyntaxExampleRDBMS EquivalentEquality{:{$eg;}}db.mycol.find({"by":"tutorials point"}).pretty()where by = 'tutorials point'Less Than{:{$lt:}}db.mycol.find({"likes":{$lt:50}}).pretty()where likes < 50Less Than Equals{:{$lte:}}db.mycol.find({"likes":{$lte:50}}).pretty()where likes 50Greater Than Equals{:{$gte:}}db.mycol.find({"likes":{$gte:50}}).pretty()where likes >= 50Not Equals{:{$ne:}}db.mycol.find({"likes":{$ne:50}}).pretty()where likes != 50Values in an array{:{$in:[,,……]}}db.mycol.find({"name":{$in:["Raj", "Ram", "Raghu"]}}).pretty()Where name matches any of the value in :["Raj", "Ram", "Raghu"]Values not in an array{:{$nin:}}db.mycol.find({"name":{$nin:["Ramu", "Raghav"]}}).pretty()Where name values is not in the array :["Ramu", "Raghav"] or, doesn’t exist at allVÀ trong MongoDB
cú pháp
Để truy vấn tài liệu dựa trên điều kiện NOT, bạn cần sử dụng từ khóa $not sau đây là cú pháp cơ bản của NOT −
E. g. để tìm các tài liệu mà trường "địa chỉ" bắt đầu bằng chữ "S" hoặc cao hơn (theo 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
pymongo nhập khẩu
myclient = pymongo. MongoClient("mongodb. //máy chủ cục bộ. 27017/")
mydb = myclient["cơ sở dữ liệu của tôi"]
mycol = mydb["khách hàng"]
myquery = { "địa chỉ". { "$gt". "S" } }
mydoc = mycol. tìm (truy vấn)
cho x trong mydoc
in(x)
Lọc với biểu thức chính quy
Bạn cũng có thể sử dụng các 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 những tài liệu mà 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"}
MongoDB cung cấp cho bạn các thao tác đọc để truy xuất các tài liệu được nhúng/lồng nhau từ bộ sưu tập hoặc truy vấn một bộ sưu tập cho một tài liệu được nhúng/lồng nhau. Bạn có thể thực hiện các thao tác đọc bằng db. thu thập. phương thức tìm(). Phương pháp này chọn hoặc xem các tài liệu được nhúng/lồng nhau của bộ sưu tập và trả con trỏ về tài liệu đã chọn
cú pháp. db. thu thập. tìm (bộ lọc, phép chiếu)
Thông số.
- lọc. Nó là một tham số tùy chọn. Nó chỉ định bộ lọc lựa chọn với sự trợ giúp của toán tử truy vấn. Và nếu bạn muốn lấy tất cả các tài liệu có trong bộ sưu tập, thì hãy bỏ qua các tham số này hoặc chuyển một tài liệu trống vào phương thức. Loại tham số này là Tài liệu
- chiếu. Nó là một tham số tùy chọn. Nó chỉ định rằng chỉ những trường đó mới quay lại tài liệu khớp với bộ lọc truy vấn đã cho. Và nếu bạn muốn lấy tất cả các trường trong tài liệu thì bỏ qua tham số này
Trở lại. Phương thức này trả về một con trỏ tới các tài liệu khớp với tiêu chí truy vấn đã chỉ định. Khi bạn sử dụng phương thức find(), nó sẽ trả về tài liệu, có nghĩa là phương thức này thực sự đang trả về con trỏ cho tài liệu
Truy cập tài liệu được nhúng/lồng nhau –
Trong MongoDB, bạn có thể truy cập các trường của tài liệu lồng/nhúng của bộ sưu tập bằng cách sử dụng ký hiệu dấu chấm và khi bạn đang sử dụng ký hiệu dấu chấm, thì trường và trường lồng nhau phải nằm trong dấu ngoặc kép.
cú pháp.
"field.nestedField": valueTrong các ví dụ sau, chúng tôi đang làm việc với
cơ sở dữ liệu. GeekforGeek
Bộ sưu tập. khóa học
Tài liệu. ba tài liệu chứa thông tin chi tiết về sinh viên ở dạng cặp trường-giá trị
Phù hợp với tài liệu được nhúng/lồng nhau –
Trong ví dụ này, chúng tôi đang truy xuất các tài liệu khớp với trường lồng nhau bằng cách sử dụng toán tử truy vấn. Ở đây, trong truy vấn, chúng tôi sử dụng toán tử $in. Toán tử này được sử dụng để khớp với bất kỳ giá trị nào được chỉ định trong mảng đã cho.