Zkuste toto
const { user } = req;
productsModels.aggregate([
{ $sort: { '_id': -1 } },
{ $limit: 10 },
{
$lookup: {
from: 'likes',
let: {productId:"$_id"},
pipeline: [
{
$match: {
$expr:{$eq:['$_id', '$$productId']}},
'userId': mongoose.Type.Object(user.id)
}
}
],
as: 'liked'
}
},
]);}
Ve vašem dotazu chybí dvě věci
1) Převod userid na mongo object id, takže jsme použili mongoose.Types.ObjectId
2) Nemůžete použít vnější pole kolekce přímo ve vnitřním potrubí, protože jste vytvořili temp proměnnou, takže jsme použili let
k deklaraci a spárování s interním polem musíme použít $expr