Làm cách nào để thêm trường vào la bàn trong mongodb?

Sắp xếp, giới hạn và bỏ qua đều hoạt động theo cùng một cách, bằng cách thêm tùy chọn vào cuối truy vấn trước khi bạn gửi truy vấn đến cơ sở dữ liệu của mình. Bằng cách này, bạn đảm bảo một trong hai

  • Loại. Sắp xếp kết quả truy vấn
  • Giới hạn. giới hạn kết quả truy vấn
  • Nhảy. bỏ qua ngoài truy vấn

Vì vậy, hãy bắt tay vào sắp xếp, giới hạn và Bỏ qua

Trước hết, chúng ta bắt đầu với Sắp xếp. Sắp xếp yêu cầu thêm một đối tượng để chỉ ra. Tên khóa dùng để sắp xếp và hướng sắp xếp 1 tăng dần -1 giảm dần

Chẳng hạn, để sắp xếp truy vấn theo tên tăng dần và tuổi giảm dần, chúng ta có thể thực hiện như sau

db.students.find().sort({“full_name”:1, “age” : -1});

Bây giờ, để sử dụng nó trong MongoDB Compass, chúng ta chỉ cần làm

Sắp xếp tài liệu bằng MongoDB Compass

Vắt chanh dễ dàng, dễ chịu

Để đặt giới hạn cho truy vấn của bạn, Ví dụ: bạn chỉ muốn các tài liệu đầu tiên trên cơ sở dữ liệu của mình, bạn có thể sử dụng Giới hạn, giống như sắp xếp, bạn đặt hàm giới hạn cho truy vấn tìm kiếm của mình và bạn chỉ định số lượng kết quả bạn muốn trả về

db.students.find().limit(3);

Hãy nhớ rằng nếu có ít tài liệu phù hợp với truy vấn của bạn, thì chỉ số lượng tài liệu được tìm thấy sẽ được trả lại. Đó là bởi vì Giới hạn đặt giới hạn trên chứ không phải giới hạn dưới

Bỏ qua hoạt động giống như Giới hạn. Chuỗi nó để tìm sau đó chỉ định số lượng tài liệu bạn muốn bỏ qua

db.students.find().skip(3);

Vì vậy, trong trường hợp này, Skip sẽ chuyển ba tài liệu đầu tiên vào bộ sưu tập của bạn, sau đó trả lại các tài liệu còn lại. Nếu bộ sưu tập của bạn có ít hơn ba tài liệu. Sau đó, không có gì sẽ được trả lại

Được rồi, giờ thì rõ ràng rồi

Đợi đã, một điều nữa. Bạn có thể xâu chuỗi ba phương thức vào find trong cùng một truy vấn. Chỉ như thế này

db.students.find.sort({“full_name”:1,”age”:-1}).limit(3).skip(3);

Xâu chuỗi Sắp xếp, Lọc và Giới hạn trong MongoDB CompassOperators và mảng

Hãy đến một lần nữa cho fudge lớn. ? . Tôi sẽ cố gắng xóa nó cho bạn

Vì vậy, MongoDB có danh sách các toán tử có thể được sử dụng trên các trường của bạn, như chuỗi, số, mảng, đối tượng hoặc thậm chí cả tài liệu con. Chúng tôi sử dụng toán tử để lọc kết quả của mình theo điều kiện

Chỉ cần lưu ý rằng mặc dù ban đầu các toán tử nghe có vẻ hơi kỳ lạ, nhưng tất cả chúng đều hoạt động theo cùng một cách, vì vậy bạn chỉ cần làm quen với nó

Vì vậy, hãy bắt đầu với Truy vấn điều kiện

MongoDB uses JSON-like syntax for queries, hence using some operators like > or < won’t work. So we need operators to replace all the mathematical comparison operators. So we introduce : $lt, $lte, $gt, $gte, to replace respectively: <, <=, >, >=.

Tất cả các toán tử này có thể được kết hợp để tìm kiếm một loạt các giá trị, chẳng hạn như sinh viên có độ tuổi từ 18 đến 20

vì vậy chúng tôi sẽ sử dụng cho điều đó

db.students.find({“age”: {“$gte”: 18, “$lte”: 20}});

Cách sử dụng nó trên MongoDB Compass. không nói nữa

Cách sử dụng ít hơn hoặc lớn hơn các toán tử

Làm thế nào về truy vấn mảng?

Chà, để tìm một truy vấn sử dụng một phần tử duy nhất từ ​​​​mảng, thật dễ dàng. bạn chỉ cần nói

db.students.find({“courses”:”Mathematics”});

và nó sẽ trả về tất cả các tài liệu phù hợp

Cách tìm tài liệu bằng phần tử từ mảng

Tuy nhiên, nếu bạn muốn khớp nhiều tài liệu, bạn cần sử dụng toán tử để thực hiện điều đó, như thế này

db.students.find({“courses”:{$all:[“Mathematics”, “English”]}});

Truy vấn này sẽ cho phép bạn tìm các tài liệu có cả phần tử “Toán học” và “Tiếng Anh” trong mảng khóa học và thứ tự giữa các phần tử không quan trọng

Cũng lưu ý rằng việc sử dụng một phần tử trong các mảng như “các khóa học” này. {$tất cả. [“Toán học”]} sẽ khớp với các tài liệu giống như khi sử dụng {“khóa học”. "Toán học"}. Hãy tự mình thử

Nếu bạn muốn chạy truy vấn cho một phần tử cụ thể trong mảng, bạn có thể sử dụng

db.students.find({“courses.1”:”English”});

Điều này sẽ trả về tất cả các tài liệu trong đó phần tử thứ hai của mảng khóa học là “Tiếng Anh”

Thêm một thông tin thú vị nữa là làm thế nào để truy vấn các tài liệu được nhúng?

Vì vậy, nếu chúng tôi xem xét các sinh viên trong bộ sưu tập của chúng tôi được lưu trữ như sau

________số 8

sau đó để truy vấn tài liệu này, chúng tôi sẽ sử dụng

db.students.find({“name.first”:”Theodore”, “name.last”: “Mosby”});

Và bạn cũng nên lưu ý rằng loại truy vấn này phân biệt thứ tự, có nghĩa là nếu bạn bắt đầu bằng họ thì nó sẽ không trả về kết quả của bạn

Có những toán tử khác bị bỏ qua trong hướng dẫn này. Nếu bạn quan tâm đến những điều này nhiều hơn, hãy để lại bình luận bên dưới để thông báo cho tôi

Cập nhật tài liệu

Điều gì sẽ xảy ra nếu chúng tôi mắc lỗi chính tả đối với tên học sinh của mình? . Chúng ta không thể để điều đó mãi mãi được lưu giữ như một sai lầm. May mắn thay, chúng tôi có một số phương pháp cập nhật để giúp chúng tôi giải quyết vấn đề này

Vì vậy, các tài liệu trên cơ sở dữ liệu có thể được thay đổi bằng cách sử dụng. updateOne, updateMany và replaceOne. Đối với các phương thức Cập nhật, mỗi phương thức lấy tài liệu bộ lọc làm tham số đầu tiên và tài liệu sửa đổi, nơi bạn có thể mô tả các thay đổi bạn muốn thực hiện. replaceOne cũng nhận vào tham số đầu tiên các thay đổi sẽ được gửi nhưng ở tham số thứ hai, nó mong đợi tài liệu sẽ thay thế tài liệu khớp với bộ lọc

Lưu ý rằng chúng tôi cập nhật tài liệu bằng hai truy vấn cùng một lúc. Bản cập nhật đầu tiên đến máy chủ sẽ được áp dụng, tuy nhiên, truy vấn thứ hai cũng đến máy chủ cũng sẽ được áp dụng

Thông thường chỉ một số phần nhất định của tài liệu cần được cập nhật. Bạn có thể cập nhật một trường cụ thể của tài liệu bằng toán tử cập nhật. $set, $unset và $inc

Hãy thực hành các toán tử này và xem cách chúng hoạt động

$set được sử dụng để đặt giá trị của một trường. Nếu trường chưa tồn tại, nó sẽ được tạo. Cập nhật bằng cách sử dụng bộ có thể hữu ích để cập nhật trường hoặc thêm khóa mới. Chúng ta có thể đặt họ và tên cho học sinh bằng lệnh này

db.students.find().limit(3);
0

Để cập nhật một trường trong tài liệu bằng Mongo Compass, trước tiên chúng ta cần chọn tài liệu, sau đó chúng ta sẽ cập nhật thủ công giống như hình bên dưới

Bây giờ nếu chúng tôi nhận ra rằng chúng tôi không cần tên đầy đủ và họ và tên là đủ. chúng ta có thể sử dụng tài liệu $unset để xóa khóa “full_name”

db.students.find().limit(3);
1

và sau đó tài liệu sẽ giống như lúc ban đầu

Toán tử $inc có thể được sử dụng để thay đổi tăng và giảm một khóa hiện có hoặc tạo một khóa mới hiện có nếu nó chưa tồn tại. Chúng tôi có thể sử dụng nó để tăng tuổi của học sinh trong cơ sở dữ liệu của mình, theo bất kỳ giá trị nào chúng tôi muốn thêm

db.students.find().limit(3);
2

và nếu chúng tôi phát hiện ra rằng học sinh chưa già đi, thì chúng tôi có thể thay đổi giá trị một cách dễ dàng bằng cách sử dụng

db.students.find().limit(3);
3

và tài liệu của bạn sẽ trở lại trạng thái trước đó

Cập nhật mảng

Tôi nghĩ bạn đã đoán đúng rồi, nếu bạn muốn cập nhật một mảng trong tài liệu của mình, bạn phải sử dụng một toán tử. nhưng tại thời điểm này nó là khá dễ dàng để làm điều này. Vì vậy, hãy tiếp tục và khám phá những toán tử này

Chúng ta hãy bắt đầu với việc thêm một phần tử vào một mảng. $push, sẽ cho phép bạn thêm phần tử vào cuối mảng. Ví dụ: giả sử chúng tôi muốn thêm một khóa học mới vào danh sách các khóa học của mình. Vì vậy, chúng tôi sẽ sử dụng lại bản cập nhật nhưng chúng tôi sẽ sử dụng $push với trường chúng tôi muốn cập nhật và giá trị chúng tôi muốn thêm

db.students.find().limit(3);
4

và điều này sẽ thêm Lịch sử vào danh sách các khóa học của sinh viên. Để làm điều này bằng la bàn MongoDB, nó thậm chí còn dễ dàng hơn

Điều gì sẽ xảy ra nếu chúng tôi mắc lỗi và chúng tôi đã cập nhật tài liệu sai. Đừng lo. Chỉ cần bạn có thể sử dụng cùng một cú pháp với một chút sửa đổi để xóa một phần tử khỏi mảng. Trước tiên, bạn sẽ cần thay đổi toán tử và sử dụng $pull thay vì $push. sau đó bạn sẽ giữ nguyên phần còn lại. Khá dễ dàng phải không

db.students.find().limit(3);
5

Hãy thực hành nó trên la bàn MongoDB

Cập nhật một mảng từ tài liệu bằng cách sử dụng MongoDB CompassXóa tài liệu

Cập nhật rất hữu ích và tiện dụng trong khi chúng tôi vẫn quan tâm đến dữ liệu mình có, nhưng đôi khi chúng tôi cần giải phóng thêm dung lượng cho dữ liệu mới. Giải pháp duy nhất để chúng tôi làm điều đó là xóa dữ liệu không còn cần thiết. MongoDB cho phép bạn xóa dữ liệu khỏi bộ sưu tập của mình bằng hai phương pháp khác nhau. xóaMột và xóaNhiều. Cả hai phương pháp này đều lấy tài liệu bộ lọc làm tham số đầu tiên. DeleteOne sẽ xóa kết quả phù hợp đầu tiên trên bộ sưu tập, trong khi deleteMany sẽ xóa tất cả các tài liệu phù hợp trên bộ sưu tập

Để xóa tài liệu bằng _id, chúng ta có thể sử dụng

db.students.find().limit(3);
6

Sử dụng la bàn MongoDB dễ dàng hơn như chúng ta có thể thấy từ hình bên dưới

Xóa tài liệu khỏi MongoDB CompassConclusion

Đó là nó. Bây giờ bạn đã biết cách sử dụng các toán tử và cách chạy cập nhật và xóa, chúng ta có thể bắt đầu đặt câu hỏi về hiệu suất của các truy vấn của mình