Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$mul
El $mul operador de Amazon DocumentDB se utiliza para multiplicar el valor de un campo por un número específico. Esto puede resultar útil para actualizar varios documentos de forma atómica y coherente, por ejemplo, para actualizar las millas de vuelo en función del estado de una tarjeta de crédito.
Parámetros
-
field: El campo que se va a multiplicar. -
multiplier: el número por el que se va a multiplicar el valor del campo.
Ejemplo (MongoDB Shell)
En este ejemplo se muestra cómo utilizar el $mul operador para duplicar el flight_miles valor de todos los documentos en los que se encuentra el credit_card campo. true
Cree documentos de muestra
db.miles.insertMany([ { "_id": 1, "member_since": new Date("1987-01-01"), "credit_card": false, "flight_miles": [1205, 2560, 880] }, { "_id": 2, "member_since": new Date("1982-01-01"), "credit_card": true, "flight_miles": [2410, 5120, 1780, 5560] }, { "_id": 3, "member_since": new Date("1999-01-01"), "credit_card": true, "flight_miles": [2410, 1760] } ]);
Ejemplo de consulta
db.miles.update( { "credit_card": { "$eq": true } }, { "$mul": { "flight_miles.$[]": NumberInt(2) } }, { "multi": true } );
Salida
{ "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "flight_miles" : [ 1205, 2560, 880 ] }
{ "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 4820, 10240, 3560, 11120 ] }
{ "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 4820, 3520 ] }
Para los clientes que tienen una tarjeta de crédito, sus millas de vuelo se han duplicado.
El operador de matriz $[] posicional se utiliza para aplicar la $mul operación a cada elemento de la flight_miles matriz.
Ejemplos de código
Para ver un ejemplo de código para usar el $mul comando, elija la pestaña correspondiente al idioma que desee usar: