Prøv dette
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'
}
},
]);}
I din forespørgsel mangler to ting
1) Konvertering af bruger-id til mongo objekt-id, så vi brugte mongoose.Types.ObjectId
2) Du kan ikke bruge ydre opsamlingsfelt direkte i indre pipeline for dette har du oprettet temp variabel, så vi brugte let
for at deklarere og matche med internt felt skal vi bruge $expr