Dla Twojego pierwszego problemu MongoDB ma upsert więc
db.collection.update(
{query for id},
{document},
{upsert: true}
)
lub w sterownik Java
yourCollection.update(searchObject, modifiedObject, true, false);
Jeśli chcesz ustawić niestandardowy identyfikator, po prostu ustaw _id
klawisz ręcznie, tj.
yourBasicDBObject.put("_id",yourCustomId)
musisz tylko upewnić się, że jest unikalny dla każdego dokumentu.
Będziesz także musiał ustawić _id
w swoim modifiedObject
w przeciwnym razie zostanie wygenerowany nowy.
Jeśli chodzi o operacje zbiorcze , wystarczy ustawić niestandardowy identyfikator dla każdego dokumentu, podając _id
klawisz również powinien działać.