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

Po uložení entity pomocí Moongose ​​a GraphQL jsou data nulová

Pleteš sliby a zpětná volání. exec() vrátí Promise, ale pouze v případě, že mu nebudou předány žádné argumenty. Navíc musíte vrátit Promise, který vrací exec() .

return budget.save().then((res) => {
  return Budget.findById(res._id) // missing return here
    .populate('User')
    .populate('Vehicle')
    .exec() // don't need anything else
})

Můžete to vyčistit trochu víc:

return budget.save()
  .then(res => Budget.findById(res._id)
    .populate('User')
    .populate('Vehicle')
    .exec())

Pokud potřebujete transformovat výsledky vrácené findById než je předáte klientovi:

return budget.save()
  .then(res => Budget.findById(res._id)
    .populate('User')
    .populate('Vehicle')
    .exec())
  .then(res => {
    res.foo = 'Foo'
    return res
  })



  1. Agregovat dokumenty, kde objekty v poli odpovídají více podmínkám

  2. Jak získat poslední zprávu z konverzace v mongodb

  3. Databáze detekce Mongoose není připravena

  4. Použití vlastnosti objektu jako argumentu $maxDistance v dotazu na geolokaci mongodb