Đặt hàng trong mongodb

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(); 

Đặt hàng trong mongodb

kết quả về tương tự như khi chúng ta sử dụng
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ố 8

    kế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ề

    SELECT * FROM  users.
    
    0

    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í đó

    SELECT * FROM  users.
    
    0

    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ề

    SELECT * FROM  users.
    
    1

    *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()
1

4. 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.
    SELECT * FROM  users.
    
    2

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