Я использую MongoDB, и у меня есть следующие записи:
{
name: "a",
status: [
{ age: 15, closed: true},
{ age: 38, closed: true},
{ age: 42, closed: false},
]
},
{
name: "b",
status: [
{ age: 29, closed: true},
{ age: 5, closed: false},
]
}
Я хочу проверить, имеет ли предыдущий последний объект в статусе, например, возраст = 29.
, поэтому для этого у меня естьэтот рабочий запрос:
db.col.find({
$expr: {
$eq: [
29,
{
$let: {
vars: { beforeLast: { $arrayElemAt: [ "$status", -2 ] } },
in: "$$beforeLast.age"
}
}
]
}
})
, но сейчас я хочу проверить, например, есть ли в возрасте значение типа «2».Мне нужно использовать выражение регулярных выражений.В любом случае можно ли преобразовать этот запрос, чтобы использовать регулярное выражение внутри / вместо $eq
оператора?
PS: я не хочу использовать агрегацию, потому что я работаю со старой версией.