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

mongo 3 bản sao trên chỉ mục duy nhất - dropDups

dropDupes hiện không được dùng nữa kể từ phiên bản 2.7.5 vì không thể dự đoán chính xác tài liệu nào sẽ bị xóa trong quá trình này.

Thông thường, bạn có 2 tùy chọn:

  1. Sử dụng bộ sưu tập mới:

    • Tạo một bộ sưu tập mới,
    • Tạo chỉ mục duy nhất trên bộ sưu tập mới này,
    • Chạy hàng loạt để sao chép tất cả tài liệu từ bộ sưu tập cũ sang bộ sưu tập mới và đảm bảo bạn bỏ qua lỗi khóa trùng lặp trong quá trình này.
  2. Xử lý nó trong bộ sưu tập của riêng bạn theo cách thủ công:

    • đảm bảo rằng bạn sẽ không chèn thêm các tài liệu trùng lặp vào mã của mình,
    • chạy hàng loạt trên bộ sưu tập của bạn để xóa các bản sao (và đảm bảo bạn giữ lại bản tốt nếu chúng không hoàn toàn giống nhau),
    • sau đó thêm chỉ mục duy nhất.

Đối với trường hợp cụ thể của bạn, tôi khuyên bạn nên sử dụng tùy chọn đầu tiên nhưng với một thủ thuật:

  • Tạo một bộ sưu tập mới với chỉ mục duy nhất,
  • Cập nhật mã của bạn để bây giờ bạn chèn tài liệu vào cả hai bảng,
  • Chạy hàng loạt để sao chép tất cả tài liệu từ bộ sưu tập cũ sang bộ sưu tập mới (bỏ qua lỗi khóa trùng lặp),
  • đổi tên bộ sưu tập mới để khớp với tên cũ.
  • cập nhật lại mã của bạn để bây giờ bạn chỉ viết trong bộ sưu tập "cũ"


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách kết nối mongodb từ xa với pymongo

  2. Xóa tệp nhật ký của mongodb có an toàn không?

  3. Cách chuyển chế độ xem MongoDB thành Bộ sưu tập

  4. Làm thế nào để chuyển đổi casbah mongodb list sang json trong scala / play

  5. MongoDB lồng nhau HOẶC / VÀ Ở đâu?