MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách xóa tài liệu MongoDB bằng cách nhập tệp

Kể từ mongoimport phiên bản 100.0.0, bạn có thể xóa tài liệu trong MongoDB dựa trên tệp đã nhập. Để thực hiện việc này, hãy sử dụng delete chế độ.

Khi bạn sử dụng delete , nếu một tài liệu đã nhập có cùng _id giá trị như một tài liệu hiện có trong bộ sưu tập mà bạn đang nhập vào, tài liệu hiện có sẽ bị xóa.

Bạn cũng có thể chỉ định trường hoặc các trường khác (ngoài _id trường) là trường phù hợp nếu được yêu cầu.

Ví dụ

Giả sử chúng ta có một bộ sưu tập có tên là pets chứa các tài liệu sau:

 db.pets.find() 

Kết quả:

 {"_id":1, "name":"Wag", "type":"Dog", "weight":20} {"_id":2, "name":"Bark", "type" :"Dog", "weight":10} {"_id":3, "name":"Meo meo", "type":"Cat", "weight":7} {"_id":4, "name" :"Scratch", "type":"Cat", "weight":8} {"_id":5, "name":"Bruce", "type":"Bat", "weight":3}  

Và chúng tôi có tệp JSON sau được gọi là pets.json :

 {"_id":1, "name":"Wag", "type":"Dog"} {"_ id":2, "name":"Fluffy", "type":"Cat", " weight ":10} {" _ id ":9," name ":" Hop "," type ":" Kangaroo "," weight ":60} 

Lệnh sau nhập tệp JSON bằng cách sử dụng delete chế độ:

 mongoimport --db=PetHotel --collection=pets --mode=delete --file=data/pets.json 

Chạy lệnh này sẽ xóa mọi tài liệu phù hợp trong bộ sưu tập.

Kiểm tra kết quả

Bây giờ chúng ta hãy xem bộ sưu tập.

 db.pets.find() 

Kết quả:

 {"_id":3, "name":"Meo meo", "type":"Cat", "weight":7} {"_id":4, "name":"Scratch", "type" :"Cat", "weight":8} {"_id":5, "name":"Bruce", "type":"Bat", "weight":3} 

Chúng ta có thể thấy rằng 2 tài liệu đầu tiên đã bị xóa. Chúng đã bị xóa vì _id của chúng các giá trị khớp với _id giá trị trong các tài liệu hiện có. Điều này mặc dù các chi tiết khác không nhất thiết phải khớp (chẳng hạn như với tài liệu 2).

Ngoài ra, tệp đã nhập của chúng tôi có tài liệu với _id trong tổng số 9 nhưng không có tài liệu nào phù hợp và vì vậy không có tài liệu nào bị xóa cho tài liệu đó.

Thay đổi / s Trường nâng cấp

Bạn có thể sử dụng --upsertFields tham số để chỉ định một trường không phải là _id để so khớp với. Khi sử dụng nhiều trường với tham số này, hãy chuyển chúng dưới dạng danh sách được phân tách bằng dấu phẩy.

Giả sử chúng ta có một tệp JSON khác được gọi là pets2.json và nó trông như thế này:

 {"name":"Meo meo", "type":"Cat", "weight":7} {"name":"Bubbles", "type":"Fish", "weight":3} 

Tài liệu này không bao gồm _id , vì vậy chúng tôi sẽ cần đối sánh với các trường khác nhận dạng duy nhất từng tài liệu. Trong trường hợp này, chúng tôi có thể sử dụng nametype lĩnh vực.

Do đó, chúng tôi có thể sử dụng mongoimport sau lệnh:

 mongoimport --db=PetHotel --collection=pets --mode=delete --upsertFields=name,type --file=data/pets2.json 

Bây giờ chúng ta hãy kiểm tra lại bộ sưu tập:

 db.pets.find() 

Kết quả:

 {"_id":4, "name":"Scratch", "type":"Cat", "weight":8} {"_id":5, "name":"Bruce", "type" :"Bat", "weight":3} 

Chú mèo kêu meo meo đã bị xóa vì con vật cưng đó tồn tại trong cả bộ sưu tập MongoDB và tài liệu đã nhập.

Bong bóng con cá không có tài liệu phù hợp nên không có tài liệu nào bị xóa cho cái đó.

Kiểm tra mongoimport

mongoimport là một phần của gói Công cụ cơ sở dữ liệu MongoDB. Công cụ cơ sở dữ liệu MongoDB là một bộ tiện ích dòng lệnh để làm việc với MongoDB.

Nếu bạn không chắc mình có Công cụ cơ sở dữ liệu MongoDB / mongoimport hay không đã cài đặt, hãy thử chạy lệnh sau trong Terminal hoặc Command Prompt của bạn để kiểm tra:

 mongoimport --version 

Nếu có, bạn sẽ thấy thông tin phiên bản, v.v. Nếu chưa có, bạn có thể sử dụng hướng dẫn cài đặt trên trang web MongoDB để cài đặt vào hệ thống của mình.

Chạy lệnh ở đâu?

Đừng quên, bạn cần chạy mongoimport lệnh từ dòng lệnh của hệ thống của bạn (ví dụ:cửa sổ Terminal hoặc Command Prompt mới).

Đừng chạy chúng từ mongo vỏ bọc.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. lệnh mongo không được nhận dạng khi cố gắng kết nối với máy chủ mongodb

  2. Khoảng cách in MongoDB giữa hai điểm

  3. Tìm bằng cách sử dụng _id không hoạt động với tổng hợp

  4. Cách khuyến nghị để giảm chỉ mục bằng Mongoose là gì?

  5. Dump Bộ sưu tập Mongo sang định dạng JSON