У меня есть поле вроде этого
MyField : {
"100": "1",
"50" : "5"
}
И есть другое поле типа int. Назовите это IntField.
Я хочу получить значение MyField в соответствии со значением IntField,
практически то, что я хочу, это MyField [IntField].
Я пытался сделать это так:
$project: {
Value : {$arrayElemAt:
[{$filter:
input:{$objectToArray:"$MyField"},
as : "m",
cond:{$eq:["$$m.k","$IntField"]}} // k means key when i use objectToArray
},
0]},
}
Я ожидал вывода как 5, если IntField равен 50, и 1, если IntField равен 100.
Однако, поскольку «$$ m.k» является строкой, а «$ IntField» - int, они никогда не совпадают.
Я пробовал $ convert, но моя версия ниже 4.0, поэтому она не работает.
Как я могу решить эту проблему ?. Спасибо за любое предложение.