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

Data null efter lagring af enhed med Moongose ​​og GraphQL

Du blander løfter og tilbagekald. exec() vil returnere et løfte, men kun hvis der ikke er sendt nogen argumenter til det. Derudover skal du returnere løftet, der er returneret af 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 rydde lidt mere op i dette:

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

Hvis du har brug for at transformere resultaterne returneret af findById før du afleverer dem til klienten:

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



  1. Elastisk søgning med MongoDB:Søgning i PDF-filer

  2. Ret "indeksnavn skal være en streng", når du dropper flere indekser i MongoDB

  3. nodejs - mongodb native find alle dokumenter

  4. MongoDB:hvad er forskellene mellem dokumenter, poster og attributter?