См., Что мое условие работает нормально для первой коллекции моей истории, но для второго оно также не работает. Если я заменим указанный мной идентификатор на 5e4a8d2d3952132a08ae5724
, который существует во втором объекте коллекции истории, вернет мне все данные, которые не верны, потому что его дата больше, чем дата основной коллекции, поэтому она не должна возвращать мне ничего, пожалуйста, предложите, как это исправить.
db.main.aggregate([
{
$lookup: {
from: "history",
localField: "history_id",
foreignField: "history_id",
as: "History"
}
},
{
$unwind: "$History"
},
{
"$match": {
$expr: {
$cond: {
if: {
$eq: [
"5e4a8d2d3952132a08ae5764",
"$History.user_id"
]
},
then: {
$and: [
{
$gt: [
"$date",
"$History.date"
]
},
{
$eq: [
"5e4a8d2d3952132a08ae5764",
"$History.user_id"
]
}
]
},
else: {}
}
}
}
}
])
когда я помещаю два объекта в коллекцию истории, он тоже не работает MongoPlayground
Здесь работает игровая площадка с одним объектом истории https://mongoplayground.net/p/hrNofrq1c3S