sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose Filter baserat på dynamisk datumnyckel med värde

Om du vill hitta efter egenskap i inbäddade dokument måste du använda punktnotation

detta kommer inte att fungera, eftersom du ber mongoo att hitta dokumentet som har närvaroobjekt som är lika med samma givna objekt.

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

detta fungerar bara om attendances-objektet i din databas endast innehåller

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

det betyder att du frågar mongoo om det lagrade objektet är lika med det givna objektet och det kommer att returnera false

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

för att göra detta måste du använda punktnotation

 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)
    }
  })


  1. Batchinlägg MongoDB och NodeJs

  2. Hur förhindrar man _t och _v när man infogar i MongoDB?

  3. MongoDB - $project kapslade dokument till rotnivå

  4. hur man fixar:'MongoError:autentisering misslyckades' @MongoDB Atlas