Làm cách nào để xóa nhiều dữ liệu trong mongodb?

(hiệu ứng âm thanh điện tử) (tiếng chuông Super Mario) - [Giảng viên] Chà, không có gì tồn tại mãi mãi và dữ liệu chắc chắn thuộc loại đó. Hãy xem xét một số cách để xóa tài liệu khỏi cơ sở dữ liệu Mongo của chúng tôi. Mongo sử dụng cùng một cú pháp truy vấn cho tất cả các hoạt động, tìm, cập nhật và xóa. Cả deleteOne và deleteMany đều chấp nhận một đối tượng truy vấn để xác định bản ghi hoặc các bản ghi cần xóa. Giống như khi bạn đang cố gắng tìm tất cả các đối tượng, trong cơ sở dữ liệu, một đối tượng truy vấn trống sẽ xóa tất cả các bản ghi. Điều này không bị nhầm lẫn với việc loại bỏ một bộ sưu tập không chỉ loại bỏ các tài liệu mà còn loại bỏ chính bộ sưu tập đó, bao gồm lược đồ và các quy tắc xác thực của nó. Đã đến lúc phải phá hoại. Đối với thử thách này, hãy sử dụng các phương thức deleteOne, deleteMany và drop để xóa tài liệu khỏi bộ sưu tập khách hàng của bạn như sau. Bắt đầu bằng cách sử dụng tiện ích xuất Mongo để tạo một bản sao của bộ sưu tập khách hàng và đơn đặt hàng của bạn. Là…

Tải xuống các khóa học và học mọi lúc, mọi nơi

Xem các khóa học trên thiết bị di động của bạn mà không cần kết nối internet. Tải xuống các khóa học bằng ứng dụng LinkedIn Learning trên iOS hoặc Android của bạn

Vì vậy, tôi đang cố gắng tạo truy vấn xóa tài liệu nhiều lựa chọn cho cơ sở dữ liệu MongoDB. Tôi đã thêm các hộp kiểm vào bảng được kết nối với truy vấn lấy tài liệu đơn giản

Kết quả mong muốn.
Tôi đánh dấu vào một số hộp và nhấp vào một nút. Khi nhấp vào nút, nó sẽ kích hoạt truy vấn xóa, xóa tất cả các hàng đã chọn khỏi cơ sở dữ liệu MongoDB.

Những gì tôi có trong một truy vấn thô

{
      "delete": "workouts",
      "deletes": [ { 
            "q": { _id: ObjectId("{{Table1.selectedRow._id}}") }, 
            "limit": 0
      } ]
   }

Điều này hoạt động tốt cho một hàng, nhưng tôi chỉ không biết cú pháp appsmith để yêu cầu truy vấn này xóa nhiều hàng. Đây có phải là một chức năng bản đồ? . Kỹ năng js của tôi đang trở nên tốt hơn, nhưng vẫn còn thiếu sót

Phương thức deleteMany() là một trong những phương thức phổ biến nhất trong cầy mangut để xóa tài liệu khỏi bộ sưu tập MongoDB. Đó là một phương pháp rất đơn giản. Tất cả những gì chúng ta phải làm là, chỉ cần chuyển một truy vấn chứa (các) điều kiện và tài liệu sẽ bị xóa. Nhưng giả sử chúng ta muốn xóa nhiều tài liệu theo giá trị của trường id của chúng. Rồi sao? . Sau đó, làm cách nào để phương thức deleteMany() xóa nhiều tài liệu? . Trong bài viết này, chúng tôi sẽ thảo luận về cách sử dụng Mongoose để xóa nhiều theo trường id

Chúng tôi sẽ sử dụng bộ sưu tập chi tiết

{ "_id". ObjectId("5dc4705254a67437ca1aafb0"), "tên". "John" }
{ "_id". ObjectId("5dc4705554a67437ca1aafb1"), "tên". "Sam" }
{ "_id". ObjectId("5dc4705854a67437ca1aafb2"), "tên". "Tối đa" }
{ "_id". ObjectId("5dc4705b54a67437ca1aafb3"), "tên". "Lisa" }
{ "_id". ObjectId("5dc4705e54a67437ca1aafb4"), "tên". "Hoa hồng" }

Chúng ta có thể nhận thấy rằng giá trị của trường _id là duy nhất trong mỗi tài liệu

Để thực hiện kiểm tra điểm cuối HTTP, chúng tôi sẽ sử dụng công cụ người đưa thư. Bạn có thể tải xuống công cụ đưa thư từ www. người phát thơ. com

toán tử $in

Trước khi tiến xa hơn, chúng ta cần hiểu toán tử $in. Để hoàn thành nhiệm vụ, chúng ta phải sử dụng toán tử $in. Khi chúng tôi sử dụng toán tử $in, chúng tôi chỉ định một mảng và trong quá trình khớp, bất kỳ giá trị nào trong mảng đều có thể khớp. Không phải tất cả các giá trị cần phải khớp. Ví dụ: chúng tôi muốn khớp bất kỳ màu nào trong ba màu này – đỏ, vàng và xanh lục. Chúng ta có thể sử dụng toán tử $in theo cách sau

{
  màu. {
    $in. ["đỏ", "vàng", "xanh"];
  }
}

Nếu chúng ta chuyển truy vấn này dưới dạng truy vấn cho phương thức deleteMany(), nó sẽ khớp với tất cả các tài liệu có màu đỏ, vàng hoặc xanh lục. Theo cách tương tự, chúng tôi sẽ sử dụng toán tử $in để xóa nhiều tài liệu theo id

xóaMany() theo id

Trình xử lý tuyến sau sẽ được gọi khi điểm cuối ‘/delete’ được thực thi

bộ định tuyến. tuyến đường ("/ xóa"). xóa (hàm (req, res) {});

Hãy chèn phương thức deleteMany()

chi tiết. deleteMany({}, function(err, result) {
  if (err) {
    res. gửi(err);
  } other {
    res. gửi(kết quả);
  }
});

Hiện tại, chỉ có một đối tượng trống được truyền dưới dạng truy vấn. Hãy sử dụng toán tử $in để xóa các tài liệu chứa các giá trị của trường _id – 5dc4705254a67437ca1aafb0, 5dc4705554a67437ca1aafb1 và 5dc4705854a67437ca1aafb2. Đây là ba tài liệu đầu tiên trong bộ sưu tập chi tiết

{
  _id. {
    $in. [
      "5dc4705254a67437ca1aafb0",
      "5dc4705554a67437ca1aafb1",
      "5dc4705854a67437ca1aafb2"
    ];
  }
}

Đây là giao diện của truy vấn. Hãy chèn nó vào phương thức deleteMany()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

bộ định tuyến. tuyến đường ("/ xóa"). xóa(function(req, res) {
  chi tiết. xóaNhiều(
    {
      _id. {
      $in. [
          "5dc4705254a67437ca1aafb0",
        "5dc4705554a67437ca1aafb1",
          "5dc4705854a67437ca1aafb2"
        ] . gửi(err);
      }
    },
    function(err, result) {
      if (err) {
        res.send(err);
      } other {
        res. gửi(kết quả);
      }
    }
  );
});

Hãy thực hiện tuyến đường này bằng công cụ người đưa thư và xem điều gì sẽ xảy ra

Phương thức deleteMany() trả về một đối tượng

  1. n – số tài liệu trùng khớp
  2. ok – 1 nếu thao tác thành công
  3. đã xóaCount – số lượng tài liệu đã xóa

Vì vậy, trong kết quả của chúng tôi, giá trị của n là 3 (như chúng tôi mong đợi vì chúng tôi đã chỉ định ba giá trị trong mảng), điều này có nghĩa là truy vấn khớp với ba tài liệu. Giá trị của DeleteCount cũng là 3, điều này có nghĩa là tất cả các tài liệu phù hợp đã được xóa thành công. Hãy xác minh bằng mongo shell

> db. chi tiết. tìm()
{ "_id". ObjectId("5dc4705b54a67437ca1aafb3"), "tên". "Lisa" }
{ "_id". ObjectId("5dc4705e54a67437ca1aafb4"), "tên". "Hoa hồng" }
>

Đúng. Ba tài liệu đầu tiên bị xóa

Phần kết luận

Phương thức deleteMany() rất hữu ích. Sử dụng nó sẽ toán tử $in rất hiệu quả. Mặc dù các giá trị của _id là duy nhất cho mỗi tài liệu trong một bộ sưu tập nhưng việc sử dụng phương thức deleteMany() với toán tử $in giúp có thể xóa nhiều tài liệu theo id

Làm cách nào để xóa tất cả dữ liệu khỏi MongoDB?

Để xóa tất cả tài liệu trong bộ sưu tập, hãy chuyển một tài liệu trống ( {} ) . Không bắt buộc. Để giới hạn việc xóa chỉ một tài liệu, hãy đặt thành true. Bỏ qua để sử dụng giá trị mặc định là sai và xóa tất cả các tài liệu phù hợp với tiêu chí xóa.

Làm cách nào để xóa tất cả tài liệu khỏi bộ sưu tập trong MongoDB?

Xóa tất cả tài liệu phù hợp với bộ lọc khỏi bộ sưu tập. Chỉ định tiêu chí xóa bằng toán tử truy vấn. Để xóa tất cả các tài liệu trong một bộ sưu tập, hãy chuyển vào một tài liệu trống ( { } )

Làm cách nào để xóa nhiều bản ghi trong MongoDB Nodejs?

Bạn có thể xóa nhiều tài liệu trong một bộ sưu tập cùng một lúc bằng cách sử dụng bộ sưu tập. phương thức xóaMany() . Chuyển một tài liệu truy vấn tới phương thức deleteMany() để chỉ định một tập hợp con các tài liệu trong bộ sưu tập cần xóa.

Làm cách nào để xóa nhiều tài liệu trong MongoDB cầy mangut?

Hàm deleteMany() là cách bạn có thể xóa nhiều tài liệu khỏi bộ sưu tập bằng Mongoose. Phải mất đến hai tham số. điều kiện, tài liệu phải chứa những gì để đủ điều kiện xóa. Bạn có thể bỏ qua thuộc tính này để xóa tất cả các tài liệu trong mô hình.