Coba ini
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'
}
},
]);}
Dalam permintaan Anda, dua hal yang hilang
1) Konversi userid ke id objek mongo jadi kami menggunakan mongoose.Types.ObjectId
2) Anda tidak dapat menggunakan bidang koleksi luar secara langsung di pipa bagian dalam karena ini Anda telah membuat variabel temp jadi kami menggunakan let
untuk mendeklarasikan dan mencocokkan dengan bidang internal kita perlu menggunakan $expr