sql >> データベース >  >> NoSQL >> MongoDB

MoongoseとGraphQLでエンティティを保存した後のデータがnull

    Promiseとコールバックを混在させています。 exec() Promiseを返しますが、引数が渡されていない場合に限ります。さらに、exec()によって返されたPromiseを返す必要があります 。

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

    これをもう少しクリーンアップできます:

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

    findByIdによって返される結果を変換する必要がある場合 クライアントに引き渡す前に:

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



    1. MongoDB $ replaceOne

    2. MongoDB $ pop

    3. 1つのコマンドでクエリと挿入

    4. DockerRedis接続が拒否されました