MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:inserisci documenti con ID specifico invece di ObjectID generato automaticamente

Per il tuo primo problema MongoDB ha upsert così

db.collection.update(
   {query for id},
   {document},
   {upsert: true}
)

o nel driver Java

yourCollection.update(searchObject, modifiedObject, true, false);

Se vuoi impostare un ID personalizzato devi semplicemente impostare il _id chiave manualmente cioè

yourBasicDBObject.put("_id",yourCustomId) 

devi solo assicurarti che sia unico per ogni documento.

Dovrai anche impostare il _id nel tuo modifiedObject in caso contrario ne verrà generato uno nuovo.

Per quanto riguarda le operazioni in blocco , semplicemente impostando un ID personalizzato per ogni documento fornendo il _id anche la chiave dovrebbe funzionare.