これで問題が解決するわけではありませんが、正しい方向を示し、新しい質問を作成するために使用できる問題を特定できるようになるはずです。
ありません。インデックスは1つだけで、名前とキー記述子があります。それは同じことではありません。 名前 デフォルトのインデックスの_id_
、そのキーは_id
です 。
_id
通常、サーバー側ではなくクライアント側で作成されます。 2ZGvRfuD8iMvRiXJd
であるため、問題はこれらのキーがどこから来ているかです。 確かにObjectId
ではありません 。これは流星キーであるか、カスタムの主キーを使用している可能性がありますが、これらのキーがどのように生成されるのかわかりません。キーを生成するものは何でも衝突の影響を受けやすいのでしょうか?
それについての詳細は役に立ちますが、質問が大きくなりすぎたり、多くの履歴が得られたりしないように、新しい質問を言い換えることをお勧めします。
これが最初の答えの補題です。必須の主キーインデックスを削除することはできません。
編集:
Meteorは、デフォルトで、MongoDbとは異なる方法でIDを生成します
。 ObjectId
の規則であるため、これは理にかなっています。 クライアントの数が多い場合に衝突が発生する可能性が高くなります
(つまり、クライアントがサーバーインスタンスではなく、クライアントブラウザであり、おそらく2〜3桁多い場合)
代わりに、Meteorは明らかにメソッドを使用して、疑似乱数を一貫して生成します。クライアントとサーバー上 。苛立たしいことに、実装はPRNGを使用し、はnotにフォールバックします暗号に強い決定論的乱数ジェネレーター(Alea) 。言い換えれば、正確に IDが生成されるのは、環境の詳細に依存するため、注意が必要な場合があります。
回避策:ObjectId
を使用してみてください 主キーとして:
Orders= new Meteor.Collection('Orders', {idGeneration: 'MONGO'});