Aquí está mi consulta de mangosta (y el enrutador):
router.get('/reportsRegular', function(req,res,next){ Question.find({reports: {$size: {$gt: 0}}, checked: false}).sort({reports: -1}).limit(20).exec(function(err,results){ console.log(results) res.render('reports', {type: 'regular', user: req.user, reports: results}) })y parece que hay un problema con la primera condición de búsqueda, cuando elimino $gt a 1, funciona, pero no funcionará en casos con más de uno, así que necesito usar $gt.
Aquí hay un documento JSON de ejemplo que debería funcionar pero no se encuentra:
{ _id: new ObjectId("6212e77aa1e98ae3282a61e6"), title: 'TOMATOOOOOO', text: '<p>AAAAAAAAAAAAAAAA</p>', authorUsername: 'SweetWhite', dateCreated: 2022-02-21T01:14:34.901Z, answers: [], likes: [ 0 ], dislikes: [ 0 ], tag: 'Languages', views: [ 1, 'SweetWhite' ], reports: [ 'SweetWhite' ], checked: false, reportsNested: [], __v: 0 }Debería encontrarse ya que el tamaño de la matriz de informes es mayor que cero y el valor marcado es falso. ¿Qué estoy haciendo mal?
¡Gracias!
Necesitas $expr . Y cambiar para filtrar como:
{ $expr: { $gt: [ { "$size": "$reports" }, 0 ] }, checked: false }