Như trong bài viết trước mình đã giới thiệu cơ bản nhất về mongodb với các bạn. Tiếp tục cuộc gọi tìm hiểu về Mongo. Chúng ta sẽ cùng nhau tìm hiểu về các truy vấn trong mongoDB [go]
Nội dung chính Hiển thị
- 3. Một số toán tử truy vấn vẫn được so sánh trong MongoDB
- 4. Truy vấn nhiều điều kiện trong MongoDB
- 5. Kết luận
1. Tìm, Tìm Một
Thay vì dùng câu SELECT as trong SQL , trong MongoDB chúng ta sẽ sử dụng phương thức find để truy vấn dữ liệu với các tham số cần truy vấn
cú pháp. db. bộ sưu tập_name. find[] Khi không truyền vào các tham số bên trong hàm find[] thì nó sẽ lẩy ra tất cả các tài liệu có bên trong collection đó. Trong bài trước mình đã tạo 1 bộ sưu tập người dùng. bây giờ mình sẽ thức hiện các thao tác truy vấn trên đó
db.users.find[];
SELECT * FROM users.
Nếu bạn chỉ muốn lấy một bản ghi duy nhất thì chúng ta sẽ sử dụng findOne. it will return for them ta document first.
SELECT * FROM users.
3Định dạng kết quả trả về định dạng json vs pretty[]
db.users.find[].pretty[]
2. Truy vấn dạng có điều kiện
cú pháp. db. bộ sưu tập_name. tìm [truy vấn, phép chiếu]
in which
tên bộ sưu tập. is your collection name
truy vấn. không bắt buộc. chỉ định những điều khiển chúng ta muốn
chiếu. không bắt buộc. Chỉ định các trường để trả về trong các tài liệu phù hợp với truy vấn trên, nếu phép chiếu trống thì trả về tất cả các trường
có dạng { field1: , field2: .. }
giá trị có thể là bất kỳ sau đây
1 hoặc true để trả về trường đó
0 hoặc false để loại trường đó
toán tử projection khác
Mình muốn lấy ra những user có tên là thu
db.users.find[{name: 'thu'}];
Hoặc mình chỉ muốn lấy một số tường trong bộ sưu tập
________số 8kết quả sẽ trả về mảng tài liệu mỗi tài liệu là một đối tượng có _id, tên, email. vì _id sẽ mặc định có trong kết quả trả về, nếu bạn không muốn _id xuất hiện thì chỉ cần thếm vào _id chiếu. 0
loại[]
phương thức sắp xếp trả về các tài liệu trong bộ sưu tập được sắp xếp tăng dần theo 1 trường của bộ sưu tập. sort[] tương ứng với SQL. ĐẶT BỞI
db.users.find[].sort[{name:1}];
giới hạn[]
method limit[] giới hạn số lượng tài liệu trong kết quả trả về
0SELECT * FROM users.
nhảy[]
method skip[] used to get a number of document in results from the position from bao nhiêu và bỏ qua các tài liệu trước vị trí đó
0SELECT * FROM users.
Chúng ta thường sử dụng bỏ qua kết hợp với giới hạn để phân trang từ máy chủ trả về. ví dụ như khi mình muốn phân trang lấy trang lấy ra 10 tài liệu trả về
1SELECT * FROM users.
*n là giới hạn số phần trả về trang là trang hiện tại của bạn
3. Một số toán tử truy vấn vẫn được so sánh trong MongoDB
$eq trả về các tài liệu trong giá trị đó bằng với một giá trị được xác định
cú pháp.
SELECT * FROM users.
4$gt trả lại các tài liệu trong đó giá trị của trường một giá trị được xác định
cú pháp.
SELECT * FROM users.
5$gte trả về các tài liệu trong đó giá trị của trường lớn hơn hoặc bằng 1 giá trị được định sẵn
cú pháp.
SELECT * FROM users.
6$in return các tài liệu trong đó giá trị nằm trong mảng được chỉ định
cú pháp.
SELECT * FROM users.
7$lt so sánh các giá trị nhỏ hơn giá trị được chỉ định
cú pháp.
SELECT * FROM users.
8$lte so sánh giá trị nhỏ hơn giá trị được chỉ định
cú pháp.
SELECT * FROM users.
9$ne so sánh các giá trị không bằng giá trị được chỉ định
cú pháp.
db.users.find[].pretty[]
0$nin lấy ra các giá trị không có trong mảng được chỉ định cú pháp.
db.users.find[].pretty[]
14. Truy vấn nhiều điều kiện trong MongoDB
MongoDB đã hỗ trợ chúng ta truy vấn vẫn còn nhiều điều kiện thời tiết trong 1 lần khai báo với các phép toán AND, OR như trong SQL
$và
- thực hiện một logic VÀ hoạt động trên một mảng của một hoặc nhiều biểu thức và chọn ra các tài liệu trả lời ứng dụng ngắt tất cả các biểu thức trong mảng. cú pháp.
2SELECT * FROM users.
Ví dụ
Câu chuyện này sẽ chọn tất cả tài liệu trong bộ sưu tập mà người dùng đáp ứng điều kiện
các trường tuổi có giá trị không bằng 20 và các trường giá tồn tại
Truy vấn và với nhiều biểu thức cùng thực hiện
Truy vấn này sẽ chọn ra tất cả tài liệu trong đó
- các trường tuổi có giá trị bằng 20 hoặc 21 các trường có giá trị băng thuthu hoặc phone_number = 12341234123*
5. Kết luận
Qua bài viết trên hi vọng rằng các bạn có thể nắm bắt được một số câu lệnh lấy dữ liệu trong Collection cơ bản rồi. Trong phần tiếp theo mình sẽ tiếp tục giới thiệu đến các aggregation, Populate