Für Ihr erstes Problem hat MongoDB upsert also
db.collection.update(
{query for id},
{document},
{upsert: true}
)
oder im Java-Treiber
yourCollection.update(searchObject, modifiedObject, true, false);
Wenn Sie eine benutzerdefinierte ID festlegen möchten, legen Sie einfach die _id
fest manuell eingeben, d.h.
yourBasicDBObject.put("_id",yourCustomId)
Sie müssen nur sicherstellen, dass es für jedes Dokument eindeutig ist.
Sie müssen auch die _id
festlegen in Ihrem modifiedObject
andernfalls wird ein neues generiert.
Wie für die Massenoperationen , indem Sie einfach eine benutzerdefinierte ID für jedes Dokument festlegen, indem Sie die _id
angeben Schlüssel sollte auch funktionieren.