Nếu có sự bất thường trùng lặp tồn tại trong dữ liệu, thì khi một ứng dụng Java mới khởi động với chỉ mục duy nhất, nó sẽ không khởi động được
Giải pháp
Nếu bạn cần tạo một chỉ mục duy nhất, không chạy nó ở chế độ nền. Nếu bạn vẫn cần lập chỉ mục cho nó, thì hãy đảm bảo rằng bạn không có bản sao trong nguồn dữ liệu của mình. Điều này cũng có thể được thực hiện với cấp độ mã, chỉ để kiểm tra trước khi chèn. Còn không thì bạn cần có cơ chế loại bỏ trùng lặp khỏi dữ liệu nguồn trước khi chạy index
Chia sẻ
nhãn
Chỉ mục nền DuplicateKeyException Dữ liệu mùa xuân MongoDB MongoDB Chỉ mục duy nhấtNhãn. Chỉ mục nền DuplicateKeyException MongoDB Spring Data MongoDB Chỉ mục duy nhất
Chia sẻ
Cài đặt Docker trên Windows 11 với WSL Ubuntu 22. 04
14 Tháng Năm, 2022
Điều này là để cài đặt Docker trong Ubuntu WSL mà không cần sử dụng ứng dụng Windows Docker. Thực hiện theo các bước dưới đây. Cài đặt Ubuntu 22. 04 WSL 1. Bật Hệ thống con Windows cho nền tảng Linux và Máy ảo Đi tới Bảng điều khiển -> Chương trình -> Chương trình và Tính năng -> Bật hoặc tắt các tính năng của Windows 2. Chuyển sang WSL 2 Mở Powershell và gõ lệnh bên dưới. wsl --set-default-version 2 Nếu bạn chưa có WSL 2, hãy tải xuống gói WSL 2 mới nhất và cài đặt nó. 3. Cài đặt Ubuntu Mở Microsoft Store và tìm kiếm Ubuntu. Chọn phiên bản bạn định cài đặt. Tôi muốn sử dụng phiên bản LTS mới nhất Ubuntu 22. 04. Nhấp vào nút Nhận. Sẽ mất vài phút để tải xuống và cài đặt. 4. Mở phiên bản Ubuntu đã cài đặt đã được cài đặt. Nếu bạn gặp lỗi như hình bên dưới, hãy đảm bảo cài đặt bản cập nhật WSL2 Kernel. Nếu đó là phiên bản Ubuntu cũ hơn, thông báo lỗi sẽ giống như hình ảnh bên dưới. Lỗi. WSL 2 yêu cầu cập nhật
Chia sẻ
Đọc thêm
Cách đặt tiêu đề thiết bị đầu cuối trong Ubuntu 18. 04 LTS
22 Tháng Sáu, 2020
Trong các phiên bản Ubuntu cũ hơn, bạn có thể chỉ cần nhấp chuột phải vào thanh tiêu đề của cửa sổ Ubuntu Terminal và đặt bất kỳ tiêu đề nào bạn muốn. Nhưng thật không may sau Ubuntu 18. 04 LTS tính năng này đã biến mất. Tôi đã từng thích tính năng này vì tôi có nhiều tab trong một cửa sổ đầu cuối duy nhất của một chàng trai. Tôi thường thích làm việc trong nhiều tab đầu cuối được đặt tên như bên dưới. Theo mặc định, trong phiên bản Ubuntu mới hơn, nó chỉ hiển thị thư mục hiện tại. Hãy xem làm thế nào chúng ta có thể làm điều này. Dấu nhắc Ubuntu Trong Bash của Ubuntu, có một biến môi trường $PS1 chịu trách nhiệm về các chi tiết mà dòng lệnh nhắc. Bạn sẽ có thể lặp lại điều này và xem những gì bên trong nó. Nếu tôi lặp lại nó, nó sẽ in một cái gì đó như thế này. tiếng vang $PS1 \[\e]0;\u@\h. \w\a\]${debian_chroot. +[$debian_chroot]}\[\033[01;32m\]\u@\h\[\033[00m\]. \[\033[01;34m\]\w\[\033[00m\]\$ Nếu bạn thực sự muốn hiểu ý nghĩa của điều này, bạn có thể tham khảo trang này. Cập nhật thiết bị đầu cuối
Chia sẻ
Đọc thêm
Cách truy cập bộ chứa trong Rancher từ dòng lệnh mà không cần SSH Nếu bạn đã triển khai nhóm ứng dụng trong Rancher, đôi khi bạn phải truy cập bộ chứa đang chạy cho các tác vụ khác nhau. Có thể, để kiểm tra một số tệp, theo dõi nhật ký, chạy một số lệnh, sao chép tệp, v.v. Giả sử bạn có một nhóm ứng dụng đang chạy trong Rancher như hình ảnh sau. Sử dụng giao diện người dùng web Một trong những cách để truy cập vùng chứa sẽ là sử dụng giao diện người dùng Rancher. Nếu bạn nhấp vào tên pod và sau đó trên trang tiếp theo, bạn có thể chọn Execute Shell từ menu ngữ cảnh của Pod. Sau đó, nó phải mang cửa sổ lệnh trong chính giao diện người dùng web. Tuy nhiên, phương pháp này có những hạn chế. Bạn không thể sao chép tệp vào hoặc từ Pod bằng chính giao diện người dùng web. Sử dụng Rancher CLI Có thể tìm thấy liên kết đến gói CLI ở góc dưới cùng bên phải của giao diện người dùng web Rancher. Chọn ứng dụng khách CLI theo hệ điều hành của bạn và tải xuống. Tôi đang sử dụng Linux, vì vậy tôi đã tải xuống ứng dụng khách Linux. Giải nén nó. tar -xf rancher-linux-am
Ngay cả các thư viện phổ biến như Mongoose cũng tạo các chỉ mục duy nhất dưới mui xe để thực thi các xác thực duy nhất trên các bộ sưu tập Mongo
Làm thế nào để một chỉ mục duy nhất hoạt động dưới mui xe?
Một chỉ mục duy nhất đảm bảo rằng một giá trị nhất định chỉ có thể được lưu trữ một lần cho một trường nhất định. Bất cứ khi nào bạn tạo một bộ sưu tập trong Mongo, một chỉ mục duy nhất sẽ tự động được tạo trên trường _id. Đây là điều đảm bảo rằng không có hai tài liệu nào có cùng _id được lưu trữ
Một chỉ mục duy nhất được thực thi trước, trong và sau khi tạo
Nếu bạn có dữ liệu hiện có trong một bộ sưu tập không phải là duy nhất cho một trường nhất định thì bạn sẽ gặp lỗi DuplicateKey khi tạo chỉ mục ngay từ đầu
Điều này bao gồm sự vắng mặt của trường mục tiêu. Nếu một tài liệu trong bộ sưu tập của bạn bị thiếu trường x và bạn tạo một chỉ mục duy nhất trên x thì bạn không thể thêm tài liệu mới bỏ qua trường x. Điều này là do thiếu x trên hai tài liệu không phải là duy nhất
Sử dụng cùng một khái niệm này, bạn có thể đảm bảo tính duy nhất trên các lĩnh vực khác. Những thứ như email, tên người dùng, thẻ tín dụng, SSN, số điện thoại đều là những ứng cử viên sáng giá cho tính duy nhất
Làm cách nào để tạo một chỉ mục duy nhất trong MongoDB?
Tạo một chỉ mục duy nhất yêu cầu đặt cờ duy nhất thành true
db.people.createIndex[{email:1}, {unique:true}]
Lưu ý cách {duy nhất. true} là một tùy chọn được chỉ định khi tạo bất kỳ chỉ mục nào
Bây giờ nếu bạn cố gắng thêm hai tài liệu có cùng giá trị cho email, bạn sẽ gặp lỗi Khóa trùng lặp
Lưu ý rằng nếu bộ sưu tập của bạn đã có các giá trị trùng lặp cho một trường mà bạn đang cố gắng tạo một chỉ mục duy nhất trên đó, nó cũng sẽ báo lỗi
Mặc dù ví dụ này minh họa việc thêm cờ duy nhất vào một chỉ mục trường đơn, nhưng bạn cũng có thể tạo một chỉ mục phức hợp duy nhất
db.getCollection['people'].createIndex[{email:1,user:1}, {unique:true}]
Bây giờ nếu bạn cố gắng chèn hai tài liệu có cùng giá trị cho email VÀ người dùng, bạn sẽ gặp lỗi Khóa trùng lặp