Don*_*al0 2 mongoose mongodb node.js
我运行一个查询,通过聚合返回一组用户。为了不返回执行查询的用户的文档,我在他的 id 上添加了一个 $filter。但我收到以下错误:
此地图集层中不允许使用 $filter。
我连接到一个免费的 MongoAtlas 集群。这是我的代码。
User.aggregate([
{ $filter: { _id: { $eq: id } } },
{
$match: {
jobs: { $in: jobs },
age: { $gte: minAge, $lte: maxAge },
},
},
]).exec((_, data) => res.json({ data }));Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
$filter不是管道阶段,它用于过滤数组表达式。你可以把你想要过滤的东西放在$match舞台上。
User.aggregate([
{
$match: {
_id: id,
jobs: { $in: jobs },
age: { $gte: minAge, $lte: maxAge },
},
},
]).exec((_, data) => res.json({ data }));
Run Code Online (Sandbox Code Playgroud)