Работает следующий код:
Ticket.find({
$where: function() { return this.price > this.refunds.minimumPrice}
}
)
Но я понимаю, что использование агрегата быстрее, поэтому я изменил его на следующий код:
Ticket.aggregate([
{
$addFields: {
priceTest: { $cmp: [ this.price, this.purchasersMinimumPrice] }
}
},
{ $match: { priceTest: -1 } }
])
Это работает, когда я устанавливаю { $match: { priceTest: 0 } }
но возвращает пустой массив, когда я установил { $match: { priceTest: -1 } }
или { $match: { priceTest: 1 } }
Это самый быстрый способ выполнить запрос, который сравнивает поля и, если да, то где я ошибаюсь?