我有一个这样的字段
MyField : {
"100": "1",
"50" : "5"
}
还有另一个int类型的字段。称为IntField。
我想根据IntField的值获取MyField的值, 实际上我想要的是MyField [IntField]。
我试图这样做:
$project: {
Value : {$arrayElemAt:
[{$filter:
input:{$objectToArray:"$MyField"},
as : "m",
cond:{$eq:["$$m.k","$IntField"]}} // k means key when i use objectToArray
},
0]},
}
如果IntField为50,我期望输出为5,如果IntField为100,我期望输出为1。
但是,由于“ $$ m.k”是字符串,而“ $ IntField”是int,所以它们永远不匹配。
我尝试了$ convert,但是我的版本低于4.0,所以它不起作用。
如何解决此问题?感谢您的任何建议。