如何在3.6版的MongoDb聚合查询中执行类型转换

时间:2018-11-02 13:35:14

标签: mongodb mongodb-query

我有一个这样的字段

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,所以它不起作用。

如何解决此问题?感谢您的任何建议。

0 个答案:

没有答案