MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Filtro Mongoose basato su chiave data dinamica con valore

Se vuoi trovare per proprietà nel documento incorporato devi usare la notazione punto

questo non funzionerà, perché stai chiedendo a mongoo di trovare il documento che ha l'oggetto presenze uguale allo stesso oggetto dato.

{ "attendances": {"2019-08-26": "Present"}}

questo funzionerà solo se l'oggetto presenze nel tuo database contiene solo

{ "attendances": {"2019-08-26": "Present"}}

ciò significa che chiedi a mongoo se l'oggetto memorizzato è uguale all'oggetto dato e restituirà false

 { "attendances": {"2019-08-26": "Present" , "2019-08-27": "Sick"}} ==  { "attendances": {"2019-08-26": "Present"}}

per farlo devi usare la notazione del punto

 Employee.collection.countDocuments({"attendances.2019-08-26":"Present"},(err,data)=>{
    if(err){
      res.status(500)
      res.send(err)
    }else{
      res.status(200)
      res.json(data)
    }
  })