sql >> Databáze >  >> NoSQL >> MongoDB

Filtr Mongoose založený na dynamickém datovém klíči s hodnotou

Pokud chcete ve vloženém dokumentu hledat podle vlastnosti, musíte použít tečkovou notaci

to nebude fungovat, protože žádáte mongoo, aby našel dokument, jehož objekt docházky se rovná stejnému danému objektu.

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

to bude fungovat pouze v případě, že objekt docházky ve vaší databázi obsahuje pouze

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

to znamená, že se zeptáte mongoo, zda je uložený objekt roven danému objektu a vrátí false

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

k tomu musíte použít tečkovou notaci

 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. Mongodb:Pokud je podmínka splněna, vloží prvek do vnořeného pole

  2. Importujete soubor JSON pomocí mongimportu, stále dostáváte „neočekávaný identifikátor“?

  3. MongoDB 'nelze najít index pro dotaz $geoNear'

  4. Chyba vypršení časového limitu připojení mongodb