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): introduzca la descripción de la imagen aquí

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
);

Veamos cual es el resultado: introduzca la descripción de la imagen aquí

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: introduzca la descripción de la imagen aquí

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
);


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow