Я ищу нужный поисковый запрос в MongoDB для сравнения двух значений внутри ассоциативных массивов, у меня есть документы, как это:MongoDB Как сравнить поля в ассоциативном массиве
{
"_id" : ObjectId("5502cc4280ee2cd549dee9e8"),
"formats" : [
{
"name" : "first",
"prices" : [
{
"futurePrice" : 5.49,
"price" : 5.49
}
]
},
{
"name" : "second",
"prices" : [
{
"futurePrice" : 5.49,
"price" : 5.49
}
]
}
]
}
Мне нужно сравнить futurePrice и цены поля, чтобы найти документ, в котором есть хотя бы один формат с futurePrice> цена
Я пытался что-то вроде этого:
Collection.find({'formats.prices': { $elemMatch: 'this.futurePrice > this.price' }}, ...
Но это, кажется, не работает, какие-либо идеи?
Да, вы можете использовать оператор '$ where'. Он не оптимизирован и не использует индексы, но работает. – pepkin88
@ pepkin88 вы правы. Спасибо, что указали. Я соответственно изменю свой ответ. – thegreenogre