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

Dati nulli dopo il salvataggio dell'entità con Moongose ​​e GraphQL

Stai mescolando promesse e richiamate. exec() restituirà una promessa, ma solo se non ha argomenti passati ad essa. Inoltre, devi restituire la Promise restituita da exec() .

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

Puoi ripulirlo un po' di più:

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

Se devi trasformare i risultati restituiti da findById prima di consegnarli al cliente:

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