Uw oplossing ziet er bijna goed uit, op voorwaarde dat dateStart
en dateStart
zijn eigenlijk Date
objecten en niet String
v.
Je Probeer er 2 was onvolledig Ik weet niet zeker of het de $lookup
. gebruikt van Probeer 1 of niet. Als dit het geval is, moet u ervoor zorgen dat de uitvoer van $lookup
is hetzelfde als invoer van $filter
. Dus je moet veranderen as
in $lookup
overeenkomen met input
van $filter
{
$lookup: {
from: "notifications",
localField: "accessToken",
foreignField: "accessToken",
as: "items" // here
}
}
Alternatieve oplossing
Ik weet niet zeker wat je als output wilt. Als je alleen een reeks meldingen nodig hebt zonder het gebruikersobject, kun je het volgende proberen.
[{
$match: { userId: mongoose.Types.ObjectId(userId) }
}, {
$lookup: {
from: "notifications",
localField: "accessToken", // don't forget to index register.accessToken
foreignField: "accessToken", // don't forget to index notification.accessToken
as: "notifications"
}
}, {
$unwind: "$notifications"
}, {
$match: {
dateCreated: { $gte: dateStart, $lte: dateEnd } // dateStart, dateEnd should be Date objects
}
}, { // optional, move notifications to top lvel
$replaceRoot: { root: '$notifications' }
}]