Мангуст запрашивает предпоследний элемент из массива объектов

#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…