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

Mongo đưa ra lỗi khóa trùng lặp trên trường _id_ trong ứng dụng Meteor

Điều này sẽ không giải quyết được vấn đề của bạn, nhưng nó sẽ chỉ cho bạn đúng hướng và có thể cho phép bạn tách biệt vấn đề mà bạn có thể sử dụng để tạo một câu hỏi mới:

Không có. Chỉ có một chỉ mục và nó có tên và bộ mô tả khóa. Đó không phải là điều tương tự. Tên của chỉ mục mặc định là _id_ , khóa của nó là _id .

_id thường được tạo phía máy khách, không phía máy chủ. Câu hỏi đặt ra là các khóa đó đến từ đâu, bởi vì 2ZGvRfuD8iMvRiXJd chắc chắn không phải là ObjectId . Đây có thể là khóa sao băng hoặc bạn sử dụng một số khóa chính tùy chỉnh, nhưng tôi không biết các khóa này được tạo ra như thế nào. Có thể bất cứ thứ gì tạo ra khóa đều dễ bị va chạm?

Thông tin thêm về điều đó sẽ hữu ích, nhưng tôi khuyên bạn nên diễn đạt một câu hỏi mới để câu hỏi không quá lớn hoặc có nhiều lịch sử.

Đó là bổ đề của câu trả lời đầu tiên:Bạn không thể xóa chỉ mục khóa chính bắt buộc.

Chỉnh sửa:

Theo mặc định, Meteor, tạo id theo cách khác với MongoDb . Điều đó có ý nghĩa, bởi vì quy ước cho ObjectId làm cho xung đột có thể xảy ra nếu số lượng khách hàng lớn (nghĩa là nếu máy khách không phải là phiên bản máy chủ mà là trình duyệt máy khách, trong đó có thể có 2-3 bậc lớn hơn).

Thay vào đó, Meteor dường như sử dụng phương pháp để tạo các số giả ngẫu nhiên một cách nhất quán trên máy khách và máy chủ . Thật khó chịu, việc triển khai sử dụng PRNG và trở lại không trình tạo số ngẫu nhiên xác định mạnh về tiền điện tử (Alea) . Nói cách khác, tìm ra cách chính xác id của bạn đang được tạo có thể phức tạp vì nó phụ thuộc vào rất nhiều chi tiết về môi trường của bạn.

Giải pháp:Hãy thử sử dụng ObjectId làm khóa chính:

Orders= new Meteor.Collection('Orders', {idGeneration: 'MONGO'});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để chèn một tài liệu có ngày tháng trong mongo?

  2. Lược đồ Mongoose với đối tượng tùy chọn lồng nhau

  3. Hoàn tác convertToCapped vào một bộ sưu tập

  4. MongoDB PHP Chưa có MongoDB \ Driver \ Exception \ ConnectionTimeoutException:Không tìm thấy máy chủ phù hợp

  5. MongoDB Ruby Driver 2.5.x Vấn đề phân biệt chữ hoa chữ thường với tên máy chủ trên bộ bản sao