He estado buscando una manera de crear una declaración de actualización que tomará un campo numérico existente y lo modificará mediante una expresión. Por ejemplo, si tengo un campo llamado Price, ¿es posible hacer una actualización que establezca Precio a 50% de descuento sobre el valor existente?Multiplicar campo por valor en Mongodb
Así que, dado { Price : 19.99 }
me gustaría hacer db.collection.update({tag : "refurb"}, {$set {Price : Price * 0.50 }}, false, true);
se puede hacer esto o tengo para leer el valor de vuelta al cliente, modificar, a continuación, actualizar? Supongo que la pregunta entonces es si las expresiones pueden usarse en la actualización, y pueden hacer referencia al documento que se está actualizando.
Tenga en cuenta que en una próxima versión de mongo, puede hacerlo sin todo esto eval y DB bloqueo casi sin costo . Compruebe y se puede aceptar la nueva respuesta, para que los nuevos desarrolladores no utilicen información obsoleta. –