MongoDB
Operadores de actualización
Buscar..
Sintaxis
- {$ set: {<field1>: <value1>, <field2>: <value2>, ...}}
Parámetros
parámetros | Sentido |
---|---|
nombre del campo | El campo será actualizado: { nombre : 'Tom'} |
targetVaule | El valor será asignado al campo: {nombre: 'Tom' } |
Observaciones
Referencia para el operador $ set : $ set en el sitio web oficial
$ establecer el operador para actualizar los campos especificados en el documento (s)
I.Vista general
Una diferencia significativa entre MongoDB y RDBMS es que MongoDB tiene muchos tipos de operadores. Uno de ellos es el operador de actualización, que se utiliza en las declaraciones de actualización.
II.¿Qué sucede si no usamos operadores de actualización?
Supongamos que tenemos una colección de estudiantes para almacenar información de estudiantes (vista de tabla):
Un día obtienes un trabajo que necesita cambiar el género de Tom de "M" a "F". Eso es fácil, ¿verdad? Así que escribe la siguiente declaración muy rápidamente en función de tu experiencia RDBMS:
db.student.update(
{name: 'Tom'}, // query criteria
{sex: 'F'} // update action
);
Perdimos la edad y el nombre de Tom! De este ejemplo, podemos saber que se anulará todo el documento si no hay un operador de actualización en la declaración de actualización. Este es el comportamiento predeterminado de MongoDB.
III. $ Set operador
Si queremos cambiar solo el campo 'sexo' en el documento de Tom, podemos usar $set
para especificar qué campo (s) queremos actualizar:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F'}} // update action
);
El valor de $set
es un objeto, sus campos representan aquellos campos que desea actualizar en los documentos, y los valores de estos campos son los valores objetivo.
Entonces, el resultado es correcto ahora:
Además, si desea cambiar 'sexo' y 'edad' al mismo tiempo, puede agregarlos a $set
:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F', age: 40}} // update action
);