aquí hay un ejemplo de un archivo JSON de un documento
{ _id: new ObjectId("6212fc135188d701253762a2"), title: 'How do i make a lemon?', text: '<p>please im confused?????</p>', authorUsername: 'SweetWhite', dateCreated: 2022-02-21T02:42:27.837Z, answers: [ { authorUsername: 'SweetWhite', text: '<p>YOU GOTTA DO THE RAIN DANCE YEAH AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</p>', date: 2022-02-21T02:42:42.785Z, replies: [], likes: [Array], dislikes: [Array], reports: [Array] } ], likes: [ 0 ], dislikes: [ 0 ], tag: 'History', views: [ 1, 'SweetWhite' ], reports: [ 'SweetWhite' ], checked: false, reportsNested: [ { username: 'SweetWhite', answerIndex: 0 } ], __v: 0 }y aquí está mi consulta para la actualización con el enrutador:
router.post('/reportsNested', body('nestedReportObj'), body('questionTitle'), function(req,res,next){ console.log(req.body.questionTitle); console.log(req.body.nestedReportObj) Question.updateOne({title: req.body.questionTitle}, {$pull: {reportsNested: req.body.nestedReportObj}}, function(err, result){ if(err) {return next(err)} console.log(result) } ) res.redirect(req.get('referer')) })los registros de la consola se imprimen
How do i make a lemon? {"username":"SweetWhite","answerIndex":0} { acknowledged: true, modifiedCount: 0, upsertedId: null, upsertedCount: 0, matchedCount: 1 }los primeros dos registros de la consola imprimen valores correctos, encuentran el documento correcto usando el título y también imprimen el valor correcto que queremos obtener.
del último registro parece que encontró el documento correcto, pero no actualizó nada, ¿por qué? en mi enrutador estoy extrayendo un valor de los informes anidados, que parece ser un campo en el archivo JSON, ¿por qué no extrae nada entonces? ¿Qué estoy haciendo mal?
¡Gracias!