这是最近在使用mongoose聚合查询时遇到的一个坑
直接上代码
articleModel.aggregate.([
//{$match: {categoriesId: "5edb465c998ec658dc60c30f"}} //没有数据
//{$match: {categoriesId: mongoose.Schema.Types.ObjectId("5edb465c998ec658dc60c30f")}} //也没有数据
{$match: {categoriesId: mongoose.Types.ObjectId("5edb465c998ec658dc60c30f")}} //好了
])
在使用聚合查询进行$match匹配时,如果匹配的是id则要将id字符串进行额外处理,将id字符串转成对应的ObjectId,而转换方法也要注意,只能使用mongoose.Types.ObjectId()
否则将查询不出结果