【问题标题】:How do I filter objects in my function using mongoose?如何使用猫鼬过滤函数中的对象?
【发布时间】:2018-02-15 03:08:00
【问题描述】:

我只想提取对我的 req.user === foundListing.uid 的用户唯一的数据。如何调整此功能以仅显示这些对象?

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);
    });
  })
}

【问题讨论】:

  • 为什么先选择user,然后再选择listings?如果listingsuser 相关,则只能创建一个请求,否则不需要此选择。

标签: node.js regex mongodb mongoose mongodb-query


【解决方案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

【讨论】:

  • @KennethVo 它也只与req.user 一起工作? (我假设 req.user 是一个对象而不是一个 ID。)
  • 是的,它与req.user 一起工作。正在关注卫星发射器教程,这就是它的设置方式,所以我猜它实际上是一个对象。
  • @KennethVo 很有趣。我们今天都学到了一些新东西。请将您的问题标记为已回答。
猜你喜欢
  • 2023-04-01
  • 2020-10-28
  • 1970-01-01
  • 2019-12-29
  • 2017-01-06
  • 2017-04-29
  • 2019-12-21
  • 1970-01-01
  • 2022-01-11
相关资源
最近更新 更多