sql >> Databasteknik >  >> NoSQL >> MongoDB

Data null efter att ha sparat entitet med Moongose ​​och GraphQL

Du blandar löften och återuppringningar. exec() kommer att returnera ett löfte, men bara om det inte har några argument skickat till det. Dessutom måste du returnera löftet som returneras av exec() .

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

Du kan rensa upp det här lite mer:

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

Om du behöver omvandla resultaten som returneras av findById innan du lämnar över dem till klienten:

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



  1. "Det gick inte att koppla bort socketfilfel i MongoDB 3.0

  2. MongoDB - Ta bort ett dokument

  3. Mongodb Öka värde inuti kapslad array

  4. mongoose att uppdatera ett fält i en MongoDB fungerar inte