2017-09-06 10 views
0

私は、req.user === foundListing.uidのユーザーに固有のデータをプルしたいだけです。これらのオブジェクトだけを表示するには、どうすればこの機能を調整できますか?mongooseを使用して関数内のオブジェクトをフィルタリングするにはどうすればよいですか?

function show(req, res) { 
    db.User.findById(req.user, function (err, user) { 
    console.log(req.user) 
    if (err) {console.log(err);} 
    db.Listing.findById(req.params.listingId, function(err, foundListing) { 
     console.log(foundListing.uid); 
     if(err) { console.log('listingsController.show error', err); } 
     res.json(foundListing); 
    }); 
    }) 
} 
+1

なぜ 'user'を最初に選択したのですか? 'listing'が' user'に関連している場合は、リクエストを1つしか作成できません。それ以外の場合は、この選択は不要です。 – alexmac

答えて

1

find()を使用してください。

function show(req, res) { 
    db.User.findById(req.user, function (err, user) { 
    console.log(req.user) 
    if (err) {console.log(err);} 
    db.Listing.find({ uid: req.user }, function(err, listings) { 
     console.log(listings); 
     if(err) { console.log('listingsController.show error', err); } 
     res.json(listings); 
    }); 
    }) 
} 

req.userを直接使用できるかどうかわかりません。通常、私はreq.user._idを使用します。

+0

@Kenneth Vo – turmuka

+0

これはうまくいくはずです。ありがとう!なぜ私が正しくそれを考えていないのか分かりません... – Kenzo

+0

@KennethVoそれはちょうど 'req.user'でもうまくいったのですか? (私は 'req.user'がオブジェクトで、IDではないと仮定しています) – Mikey

関連する問題