MongoDB聚合查询报错:参数需为聚合管道运算符,求正确写法
正确的MongoDB聚合查询写法
你遇到的报错是因为聚合管道的每个阶段都必须使用合法的管道操作符,直接把字段条件作为独立阶段不符合语法要求。
推荐写法(合并过滤条件到同一个$match阶段,查询更高效):
filteredListings = await Listing.aggregate([ { $match: { category: req.params.category, price: { $lt: 150 } } } ]);
也可拆分两个$match阶段(语法合法但效率稍低):
filteredListings = await Listing.aggregate([ { $match: { category: req.params.category } }, { $match: { price: { $lt: 150 } } } ]);
聚合管道的每个元素都必须是包含管道操作符(如$match、$project)的对象,所有文档过滤逻辑都需要放在$match操作符的内部对象中,不能直接将字段条件作为独立阶段。
内容的提问来源于stack exchange,提问作者Raghad
相关产品推荐
相关产品推荐

