Files
freeCodeCamp/curriculum/challenges/espanol/05-back-end-development-and-apis/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.md

2.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7fb8367417b2b2512c0f Realiza nuevas actualizaciones en un documento usando model.findOneAndUpdate() 2 301542 perform-new-updates-on-a-document-using-model-findoneandupdate

--description--

Las versiones recientes de Mongoose tienen métodos para simplificar la actualización de documentos. Algunas características más avanzadas (por ejemplo, pre/post hooks, validación) se comportan de forma diferente con este enfoque, por lo que el método clásico sigue siendo útil en muchas situaciones. findByIdAndUpdate() puede ser usado al buscar por id.

--instructions--

Modifica la función findAndUpdate para encontrar a una persona por Name y establece la edad de la persona a 20. Utiliza el parámetro de la función personName como clave de búsqueda.

Nota: Debes devolver el documento actualizado. Para hacer eso, necesitas pasar el documento de opciones { new: true } como tercer argumento a findOneAndUpdate(). Por defecto, estos métodos devuelven el objeto no modificado.

--hints--

findOneAndUpdate un elemento debe ser exitoso

(getUserInput) =>
  $.post(getUserInput('url') + '/_api/find-one-update', {
    name: 'Dorian Gray',
    age: 35,
    favoriteFoods: ['unknown']
  }).then(
    (data) => {
      assert.equal(data.name, 'Dorian Gray', 'item.name is not what expected');
      assert.equal(data.age, 20, 'item.age is not what expected');
      assert.deepEqual(
        data.favoriteFoods,
        ['unknown'],
        'item.favoriteFoods is not what expected'
      );
      assert.equal(
        data.__v,
        0,
        'findOneAndUpdate does not increment version by design!'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

--solutions--

/**
  Backend challenges don't need solutions, 
  because they would need to be tested against a full working project. 
  Please check our contributing guidelines to learn more.
*/