Hay otro operador que nos ayuda a incrementar los valores numéricos. Considere un registro que tiene algún parámetro numérico, como un campo llamado puntos. Los puntos son grandes porque necesitan incrementarse con frecuencia. Siendo perezoso, voy a usar la función $set:
12345678910db.students.update({ nombre: "Praveen Kumar"},{ $set:{ puntos:15}};
javascript
Ejecutando el comando anterior, obtenemos esto:
123456789; db.students.update({... "nombre": "Praveen Kumar"...},{... $set:{... "puntos":15...}...});WriteResult({"nMatched":1, "nUpserted":0, "nModified":1})
javascript
Y, comprobando si ha sido actualizado, disparamos el comando find() y obtenemos:
12345678910111213141516171819202122232425262728; db.students.find({"phone": "9840035007"}). pretty();{"_id":ObjectId("592ebe7e8e61243307417cc4"), "name": "Praveen Kumar", "degree": "Cloud Computing MSc", "email":"[email protected]", "subjects":[{"name": "Internet Networks", "prof": "Prof. Awesome Blossom"},{"nombre": "Cloud Computing", "prof": "Prof. Tech Ninja"},{"nombre": "Desarrollo web", "prof": "Prof. Chunky Monkey"}], "teléfono":["9840035007", "9967728336", "7772844242"], "puntos":15};
javascript
Excelente. Tenemos un campo de puntos en mi registro con un valor de 15.
Todo ese proceso ya debería estar claro. Si algo no está claro, mira la sección anterior de la guía y/o dispara una pregunta para mayor claridad.
Siguiendo adelante, completo este artículo, ganando así 5 puntos más. Esta condición se puede producir con un pequeño cambio:
12345678910db.students.update({ nombre: "Praveen Kumar"},{ $inc:{ puntos:5}};
javascript
Como puedes ver, cambiar $set a $inc, hace la diferencia. Esto es similar a usar el operador de asignación aumentado += en los idiomas estándar, en lugar del operador de asignación =.
12345678910111213141516171819202122232425262728282930313233343536; db.students.update({... "nombre": "Praveen Kumar"...}, {... $inc:{... "puntos":5...}...});WriteResult({"nMatched":1, "nUpserted":0, "nModified":1});db.students.find({"teléfono": "9840035007"}). pretty();{"_id":ObjectId("592ebe7e8e61243307417cc4"), "name": "Praveen Kumar", "degree": "Cloud Computing MSc", "email":"[email protected]", "subjects":[{"name": "Internet Networks", "prof": "Prof. Awesome Blossom"},{"nombre": "Cloud Computing", "prof": "Prof. Tech Ninja"},{"nombre": "Desarrollo web", "prof": "Prof. Chunky Monkey"}], "teléfono":["9840035007", "9967728336", "7772844242"], "puntos":20};
javascript
Vaya, ese fue un incremento fácil para mí de 15 a 20. Claramente, usar $inc es una gran manera de incrementar los valores numéricos.