Phương thức findOne[] được sử dụng để chọn một dữ liệu từ một bộ sưu tập trong MongoDB. Phương thức này trả về bản ghi đầu tiên của bộ sưu tập
Ví dụ
[Chọn Bản ghi đơn]
Chọn bản ghi đầu tiên từ ?employees?
Tạo một tệp js có tên "select. js", có đoạn mã sau
Mở command terminal và chạy lệnh sau
Chọn nhiều bản ghi
Phương thức find[] được sử dụng để chọn tất cả các bản ghi từ bộ sưu tập trong MongoDB
Ví dụ
Chọn tất cả các bản ghi từ bộ sưu tập "nhân viên"
Tạo một tệp js có tên "selectall. js", có đoạn mã sau
Mở command terminal và chạy lệnh sau
Bạn có thể thấy rằng tất cả các bản ghi được truy xuất
Ngay từ đầu, chúng tôi muốn cho bạn biết rằng không có truy vấn select
nào trong MongoDB. Truy vấn select
được sử dụng trong các hệ thống dựa trên SQL nhưng có một truy vấn tương đương trong MongoDB mà chúng tôi sẽ giới thiệu cho bạn
Cách thực hiện tương đương với truy vấn chọn SQL với NodeJS và MongoDB
Hầu như tất cả các truy vấn SQL đều có các truy vấn tương đương trong MongoDB. Người mới bắt đầu thường bối rối về điều này. Trong SQL, chúng tôi sử dụng câu lệnh chọn để đọc các bản ghi từ các bảng. Tương đương với câu lệnh select trong MongoDB là phương thức find[]. Nó rất dễ sử dụng. Trong bài viết này, chúng ta sẽ so sánh câu lệnh select trong SQL với câu lệnh find[] tương đương của nó trong MongoDB
Trong SQL, chúng ta có các bảng. Trong MongoDB, chúng tôi có các bộ sưu tập. Chúng tôi sẽ sử dụng bộ sưu tập điện thoại thông minh được hiển thị bên dưới để thực hiện bản demo của mình
{ "_id". ObjectId["5e12d83b86d564bd4487658a"], "tên". "Apple Iphone 11", "giá". 1000, "còn hàng". đúng }
{ "_id". ObjectId["5e12d84c86d564bd4487658b"], "tên". "Samsung S10", "giá". 800, "còn hàng". đúng }
{ "_id". ObjectId["5e12d86186d564bd4487658c"], "tên". "Apple Iphone 11 pro", "giá". 1200, "còn hàng". sai }
{ "_id". ObjectId["5e12d8bf86d564bd4487658d"], "tên". "Huawei P30 pro", "giá". 900, "còn hàng". sai }
{ "_id". ObjectId["5e12d91486d564bd4487658e"], "tên". "Apple Iphone 11 pro max", "giá". 1400, "còn hàng". đúng }
Quan sát truy vấn SQL sau
Truy vấn này sẽ truy xuất tất cả các bản ghi từ bảng điện thoại thông minh. Hãy xem tương đương với truy vấn này trong MongoDB là gì
Hãy thực hiện điều này bằng mongo shell
Dấu * trong truy vấn SQL có nghĩa là chọn tất cả các cột của một hàng. Tương tự như vậy trong phương thức find[] chúng ta không truyền bất kỳ tham số nào. Nó có nghĩa là chọn tất cả các trường trong một tài liệu. Bây giờ, giả sử chúng ta chỉ muốn chọn một số cột nhất định của một hàng. Trong SQL, chúng tôi sử dụng cách tiếp cận sau
CHỌN tên, giá TỪ điện thoại thông minh
Lần này, bản ghi sẽ chỉ chứa hai cột – tên và giá. Hãy xem điều gì tương đương với điều này trong MongoDB
db. điện thoại thông minh. tìm [{}, { tên. 1, giá. 1 }];
Chúng tôi đã chuyển hai tham số cho phương thức find[]. Cả hai đều là đối tượng. Bỏ qua đối tượng đầu tiên, chúng ta sẽ thảo luận về nó sau. Tham số thứ hai được gọi là phép chiếu
Nó sẽ trả về tất cả các tài liệu và những tài liệu này sẽ chỉ chứa các trường tên, giá và _id. Đúng. Trường _id được tạo tự động luôn ở đó. Để xóa nó khỏi kết quả, chúng ta phải sử dụng phương pháp sau
db. điện thoại thông minh. tìm [{}, { tên. 1, giá. 1, _id. 0 }];
Bây giờ, hãy thảo luận về đối tượng rỗng đã được truyền cho phương thức find trước đó
Tuyên bố này tương tự như tuyên bố sau
Cả hai sẽ trả lại tất cả các tài liệu trong bộ sưu tập điện thoại thông minh. Tham số đầu tiên của phương thức find[] là truy vấn. Nó là một đối tượng có thể chứa hoặc không chứa các điều kiện theo đó tất cả các tài liệu sẽ được lọc. Giả sử, chúng tôi chỉ muốn những tài liệu có giá trị của trường inStock là đúng. Trước tiên, hãy xem cách điều này được thực hiện trong SQL
CHỌN * TỪ điện thoại thông minh
WHERE inStock = "true"
Và đây là cách chúng tôi làm điều đó trong MongoDB
db. điện thoại thông minh. tìm [{ trong kho. thật }];
Hãy kết hợp cả truy vấn và phép chiếu trong phương thức find
db. điện thoại thông minh. tìm [{ trong kho. đúng}, {tên. 1, giá. 1, _id. 0 }];
Câu lệnh này sẽ trả về tất cả các tài liệu trong đó giá trị của trường inStock là đúng và các tài liệu này sẽ chỉ chứa các trường tên và giá
Tương đương với điều này trong SQL là
CHỌN tên, giá TỪ điện thoại thông minh
WHERE inStock = "true"
Phần kết luận
Tương đương với một select
trong cơ sở dữ liệu dựa trên sql là phương thức find[] trong MongoDB. Chúng tôi đã giới thiệu cho bạn một số truy vấn sql và các truy vấn tương đương trong MongoDB và hy vọng rằng bây giờ bạn đã hiểu cách chúng hoạt động. Cảm ơn bạn đã tham gia một hướng dẫn khác về ObjectRocket
Để hiểu cú pháp trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với tài liệu như sau
> db.singleFieldDemo.insertOne[{"StudentName":"David","StudentAge":28}]; { "acknowledged" : true, "insertedId" : ObjectId["5c6eba356fd07954a489067c"] } > db.singleFieldDemo.insertOne[{"StudentName":"Bob","StudentAge":18}]; { "acknowledged" : true, "insertedId" : ObjectId["5c6eba406fd07954a489067d"] } > db.singleFieldDemo.insertOne[{"StudentName":"Chris","StudentAge":24}]; { "acknowledged" : true, "insertedId" : ObjectId["5c6eba4c6fd07954a489067e"] } > db.singleFieldDemo.insertOne[{"StudentName":"Robert","StudentAge":26}]; { "acknowledged" : true, "insertedId" : ObjectId["5c6eba586fd07954a489067f"] }
Bây giờ bạn có thể hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find[]. Truy vấn như sau