Mongo聚合-如何使用某些函数包装表达式值?

时间:2018-07-13 19:07:59

标签: mongodb mongodb-query

这是一条语句,仅将(a_object的)相等 kilm 字段值与(b_object的) my_b 字段值进行比较:

db.a_object.aggregate([{
$match: {
}
}, {
  $lookup: {
        "from": "b_object",
        let: {
            idid: "$kilm"
        },
        pipeline: [{$match: {$expr: {"$eq": ["$$idid", "$my_b"]}}}],
        "as": "bs_objects"
}
}])

但是我想用一些功能(例如内置hex_md5()

)来包装 kilm 值(或 my_b 值)

即我想要这样的东西:

db.a_object.aggregate([{
$match: {
}
}, {
  $lookup: {
        "from": "b_object",
        let: {
            idid: "$kilm"
        },
        pipeline: [{$match: {$expr: {"$eq": ["hex_md5($$idid)", "$my_b"]}}}],
        "as": "bs_objects"
}
}])

但这不起作用。

是的,我想在检查相等性时散列kilm字段值,而不是“ kilm”字符串(字段名称)。 那是因为这样:

    pipeline: [{$match: {$expr: {"$eq": [hex_md5("$$idid"), "$my_b"]}}}],

不适合我。

Mongo是否提供一些可以提供这种行为的功能?如果是,该怎么办?

0 个答案:

没有答案