如何使用猫鼬过滤函数中的对象?

Posted

技术标签:

【中文标题】如何使用猫鼬过滤函数中的对象?【英文标题】: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 相关,则只能创建一个请求,否则不需要此选择。 【参考方案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 很有趣。我们今天都学到了一些新东西。请将您的问题标记为已回答。

以上是关于如何使用猫鼬过滤函数中的对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用猫鼬更新数组中的现有对象

如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?

如何猫鼬列表() - 按子文档字段值过滤值

如何在 Angular 中为嵌套的 JSON 对象使用搜索过滤器?

如何使用 $elemMatch 查找和过滤并更新数组的所有元素该元素在猫鼬中有一个特殊的日期?

如何使用猫鼬防止重复文件mongodb