已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
7天前关闭
Improve this question
我希望使用mongoose来查找一个基于查询的文档,该查询在数组中的对象中查找两个属性值。我使用了下面显示的代码,但它没有按预期工作-它返回包含“kiosk”的文档以及数组中计数为3的任何设备项。我希望它只返回设备名称为kiosk的文档,并且只有在3个售货亭。有人能帮忙吗?
if (equipment && equipment !== "All") {
const projects = await Project.find({
$and: [
{
"equipment.name": "kiosk",
"equipment.count": 3,
},
],
});
res.status(StatusCodes.OK).json({ projects });
return;
}
字符串
到目前为止,我所尝试的就是我所展示的。任何建议都将受到赞赏。
2条答案
按热度按时间jjjwad0x1#
我认为你应该在mongoose中使用**$elemMatch**运算符。这用于查询匹配多个记录的数组元素。
第一个月
oug3syen2#
您当前的查询很接近,但在这种情况下不需要使用
$and
,因为您为同一字段指定了多个条件。您可以直接在find
方法中使用具有多个属性的对象。字符串
更新:
如果您想确保只有名称为“kiosk”的设备项的计数为3,则可以使用
$elemMatch
运算符来指定数组中元素的条件。型