Angesichts dieses in MongoDB gespeicherten Dokuments
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Ein Objekt mit neuen Informationen zur param2
und param3
von der Außenwelt muss gespeichert werden
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Ich möchte die neuen Felder über den vorhandenen Status des Objekts zusammenführen / überlagern, damit param1 nicht entfernt wird
Dies tun
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
Wird dazu führen, dass MongoDB genau das tut, was es verlangt hat, und some_key auf diesen Wert setzt. Ersetzen des alten.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
Wie kann MongoDB nur neue Felder aktualisieren (ohne sie explizit einzeln anzugeben)? um dies zu bekommen:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
Ich verwende den Java-Client, aber jedes Beispiel wird geschätzt