MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Dados nulos após salvar a entidade com Moongose ​​e GraphQL


Você está misturando Promises e callbacks. exec() retornará uma Promise, mas somente se não tiver nenhum argumento passado para ela. Além disso, você precisa retornar a Promise retornada por exec() .
return budget.save().then((res) => {
  return Budget.findById(res._id) // missing return here
    .populate('User')
    .populate('Vehicle')
    .exec() // don't need anything else
})

Você pode limpar isso um pouco mais:
return budget.save()
  .then(res => Budget.findById(res._id)
    .populate('User')
    .populate('Vehicle')
    .exec())

Se você precisar transformar os resultados retornados por findById antes de entregá-los ao cliente:
return budget.save()
  .then(res => Budget.findById(res._id)
    .populate('User')
    .populate('Vehicle')
    .exec())
  .then(res => {
    res.foo = 'Foo'
    return res
  })