इसे आजमाएं
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'
}
},
]);}
आपकी क्वेरी में दो चीज़ें गायब हैं
1) यूजर आईडी को मोंगो ऑब्जेक्ट आईडी में कनवर्ट करना इसलिए हमने mongoose.Types.ObjectId
का उपयोग किया
2) आप बाहरी संग्रह क्षेत्र का उपयोग सीधे आंतरिक पाइपलाइन में नहीं कर सकते हैं इसके लिए आपने अस्थायी चर बनाया है इसलिए हमने let
का उपयोग किया घोषित करने और आंतरिक क्षेत्र के साथ मिलान करने के लिए हमें $expr
. का उपयोग करने की आवश्यकता है