Chaining findOneAndUpdate vs awaits

Hi. I was wondering if there is a difference in performace or which one would be considered a better way of doing 3 queries:

 User.findOneAndUpdate(
      { _id: req.user },
      { $push: { friends: newFriend } },
      (err) => {
        if (err) return res.status(400).json(err);
        User.findOneAndUpdate(
          { _id: newFriend },
          { $push: { friends: req.user } },
          (err) => {
            if (err) return res.status(400).json(err);
            FriendRequest.findOneAndDelete(
              { $and: [{ to: req.user }, { from: newFriend }] },
              (err, response) => {
                if (err) return res.status(400).json(err);
                res.json(response);
              }
            );
          }
        );
      }
    );

or:

 await User.findOneAndUpdate(
      { _id: req.user },
      { $push: { friends: newFriend } }
    );
    await User.findOneAndUpdate(
      { _id: newFriend },
      { $push: { friends: req.user } }
    );
const deletedRequest = await FriendRequest.findOneAndDelete({
  $and: [{ to: req.user }, { from: newFriend }],
});

res.json(deletedRequest);