Ini tidak akan menyelesaikan masalah Anda, tetapi seharusnya mengarahkan Anda ke arah yang benar dan mungkin memungkinkan Anda untuk mengisolasi masalah yang dapat Anda gunakan untuk membuat pertanyaan baru:
Tidak ada. Hanya ada satu indeks, dan memiliki nama dan deskriptor kunci. Itu bukan hal yang sama. nama dari indeks default adalah _id_
, kuncinya adalah _id
.
_id
biasanya dibuat sisi klien, bukan sisi server. Pertanyaannya adalah dari mana kunci-kunci itu berasal, karena 2ZGvRfuD8iMvRiXJd
tentu saja bukan ObjectId
. Ini mungkin kunci meteor, atau Anda menggunakan beberapa kunci utama khusus, tetapi saya tidak tahu bagaimana kunci ini dibuat. Mungkin apa pun yang menghasilkan kunci rentan terhadap tabrakan?
Info lebih lanjut tentang itu akan sangat membantu, tetapi saya sarankan untuk menyusun pertanyaan baru agar pertanyaannya tidak berkembang terlalu besar atau mendapatkan banyak riwayat.
Itulah lemma dari jawaban pertama:Anda tidak dapat menghapus indeks kunci utama wajib.
Sunting:
Meteor, secara default, menghasilkan id dengan cara yang berbeda dari MongoDb
. Itu masuk akal, karena konvensi untuk ObjectId
membuat tabrakan mungkin terjadi jika jumlah klien banyak
(yaitu jika klien bukan instans server, tetapi browser klien, yang mungkin ada 2-3 kali lipat lebih banyak).
Sebaliknya, Meteor tampaknya menggunakan metode untuk secara konsisten menghasilkan angka pseudo-acak pada klien dan server . Yang menjengkelkan, implementasinya menggunakan PRNG dan kembali ke not generator angka acak deterministik kuat kripto (Alea) . Dengan kata lain, mencari tahu bagaimana tepatnya ID yang Anda buat bisa jadi rumit karena bergantung pada banyak detail lingkungan Anda.
Solusi:Coba gunakan ObjectId
sebagai kunci utama:
Orders= new Meteor.Collection('Orders', {idGeneration: 'MONGO'});