MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB:insira documentos com id específico em vez de ObjectID gerado automaticamente


Para o seu primeiro problema, o MongoDB tem upsert assim
db.collection.update(
   {query for id},
   {document},
   {upsert: true}
)

ou no driver Java
yourCollection.update(searchObject, modifiedObject, true, false);

Se você quiser definir um ID personalizado, basta definir o _id chave manualmente, ou seja
yourBasicDBObject.put("_id",yourCustomId) 

você só precisa garantir que seja exclusivo para cada documento.

Você também precisará definir o _id em seu modifiedObject caso contrário, um novo será gerado.

Quanto às operações em massa , basta definir um ID personalizado para cada documento fornecendo o _id chave também deve funcionar.