MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :insérer des documents avec un identifiant spécifique au lieu d'un ObjectID généré automatiquement

Pour votre premier problème, MongoDB a upsert donc

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

ou dans le pilote Java

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

Si vous souhaitez définir un ID personnalisé, il vous suffit de définir le _id clé manuellement, c'est-à-dire

yourBasicDBObject.put("_id",yourCustomId) 

il vous suffit de vous assurer qu'il est unique pour chaque document.

Vous devrez également définir le _id dans votre modifiedObject sinon un nouveau sera généré.

Quant aux opérations en masse , en définissant simplement un ID personnalisé pour chaque document en donnant le _id clé devrait également fonctionner.