#arrays #database #mongoose #aggregation-framework #match
Вопрос:
У меня есть схемы, каждая из которых содержит массив объектов, выглядящих следующим образом:
{name: String, _id: ObjectId}
Каждый массив схем содержит несколько элементов, мне нужно сопоставить предпоследние (предпоследние) элементы _id внутри агрегатной функции, которая в настоящее время выглядит следующим образом:
{ "$match": {$expr: {$gt: [{"$arrayElemAt": ["$path._id", -2]}, mongoose.Types.ObjectId(req.params.id)]}}},
{ "$project": {
"_id": 1,
"name": 1,
"isFile": {
"$cond": [{"$eq": [{"$ifNull":["$data", null]}, null]},false, true]
}
}
}
(текущая функция сопоставления-это моя попытка, однако она не работает)
Любая помощь будет очень признательна!
Ответ №1:
Ответ: используйте $eq вместо $gt…