Questo non risolverà il tuo problema, ma dovrebbe indirizzarti nella giusta direzione e forse consentirti di isolare il problema che puoi utilizzare per creare una nuova domanda:
Non c'è. C'è solo un indice e ha un nome e un descrittore chiave. Non è la stessa cosa. Il nome dell'indice predefinito è _id_
, la sua chiave è _id
.
Il _id
viene normalmente creato lato client, non lato server. La domanda è da dove provengono quelle chiavi, perché 2ZGvRfuD8iMvRiXJd
non è certamente un ObjectId
. Questa potrebbe essere una chiave meteorica o usi una chiave primaria personalizzata, ma non so come vengono generate queste chiavi. Forse qualunque cosa generi la chiave è suscettibile di collisioni?
Maggiori informazioni al riguardo sarebbero utili, ma suggerirei di formulare una nuova domanda in modo che la domanda non diventi troppo grande o non abbia molta cronologia.
Questo è un lemma della prima risposta:non puoi eliminare l'indice di chiave primaria obbligatorio.
Modifica:
Meteor, per impostazione predefinita, genera ID in un modo diverso da MongoDb
. Questo ha senso, perché la convenzione per ObjectId
rende probabili collisioni se il numero di client è elevato
(cioè se i client non sono istanze server, ma browser client, di cui probabilmente ci sono 2-3 ordini di grandezza in più).
Invece, Meteor apparentemente utilizza il metodo per generare costantemente numeri pseudo-casuali su client e server . Irritantemente, l'implementazione utilizza un PRNG e ricade su un non generatore di numeri casuali deterministico cripto-forte (Alea) . In altre parole, scoprire come esattamente i tuoi ID vengono generati potrebbe essere complicato perché dipende da molti dettagli del tuo ambiente.
Soluzione alternativa:prova a utilizzare ObjectId
come chiave primaria:
Orders= new Meteor.Collection('Orders', {idGeneration: 'MONGO'});