仅显示存在用于登录用户的对象数组的记录

时间:2019-01-14 07:22:00

标签: node.js mongodb express mongoose

用户可以添加多个产品,并且多个用户可以请求该产品。用户登录后,我只想显示有请求的产品。

我尝试过此操作,应该首先为当前登录的userId查找产品,并且在'requests'数组存在的位置。

Product.find({userId: req.user._id}).where('requests').exists(true)

但是,这向我展示了所有产品,甚至包括没有要求的产品。

1 个答案:

答案 0 :(得分:1)

您可以简单地使用简单的MongoDB查询语法以及$exists运算符和$ne来过滤出空数组:

Product.find({userId: req.user._id, requests: { $exists: true, $ne: [] }})