Trong mongoDB, phương thức find[] được sử dụng để tìm nạp một dữ liệu cụ thể từ bảng. Nói cách khác, nó được sử dụng để chọn dữ liệu trong một bảng. Nó cũng được sử dụng để trả lại tất cả các sự kiện cho dữ liệu đã chọn. Phương thức find[] bao gồm hai tham số mà chúng ta có thể tìm thấy một bản ghi cụ thể
cú pháp
- truy vấn. Đây là một tham số tùy chọn xác định tiêu chí lựa chọn. Nói một cách đơn giản, nó định nghĩa một truy vấn là những gì bạn muốn tìm trong một bộ sưu tập
- chiếu. Đây là một tham số tùy chọn xác định nội dung sẽ trả về nếu tiêu chí truy vấn được đáp ứng thành công. Nói một cách đơn giản, đó là một kiểu ra quyết định dựa trên các tiêu chí
ví dụ
Trong các ví dụ sau, chúng tôi đang làm việc với
{ "_id" : ObjectId["56254d4fdf2222265r4g12ds3d65f"], "name" : "Mick", "Course" : "btech", "batch_year" : 2018, "language" : ["c++", "java", "python"], } { "_id" : ObjectId["56254d4fdf2222265r4g12ds3d691"], "name" : "Zoya", "Course" : "BCA", "batch_year" : 2020, "language" : ["C#", "JavaScript"], } { "_id" : ObjectId["56254d4fdf2222265r4g12ds3d655"], "name" : "Jonny", "Course" : "MCA", "batch_year" : 2019, "language" : ["C#", "java", "PHP"], } { "_id" : ObjectId["56254d4fdf2222265r4g12ds3d678"], "name" : "Oliver", "Course" : "BA", "batch_year" : 2017, "language" : ["c", "PHP"], } { "_id" : ObjectId["56254d4fdf2222265r4g12ds3d665"], "name" : "Mia", "Course" : "btech", "batch_year" : 2020, "language" : ["HTML", "CSS", "PHP"], }
ví dụ 1. Tìm tất cả các tài liệu trong bộ sưu tập của sinh viên
Khi chúng tôi cần tất cả các bản ghi, chúng tôi không sử dụng bất kỳ tham số nào trong truy vấn
đầu ra
ví dụ 2. Tìm tài liệu cụ thể
Trong ví dụ này, chúng tôi chỉ truy xuất tài liệu của những sinh viên có batch_year lớn hơn 2018
Tham số đầu tiên của phương thức find[]
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 để 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
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"]
cho x trong mycol. tìm thấy[]
in[x]
Chỉ trả về một số trường
Tham số thứ hai của phương thức find[]
là một đối tượng mô tả những trường nào sẽ được đư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 phải _ids
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"]
cho x trong mycol. tìm ID". 0, "tên". 1, "địa chỉ". 1 }]
in[x]
Bạn không được phép chỉ định cả hai 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 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ả
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"]
cho x trong mycol. tìm địa chỉ". 0 }]
in[x]
Thí dụ
Bạn gặp lỗi nếu chỉ định cả hai 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]
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 −