【问题标题】:mongodb aggregate match two fieldsmongodb聚合匹配两个字段
【发布时间】:2020-12-10 00:59:56
【问题描述】:

聚合管道中的一个阶段产生以下集合:

{
    _id : {
        airport : "SGF",
        minEffect : "security_delay",
        delayType : "arr_delay",
    }
}
{
    _id : {
        airport : "MIA",
        minEffect : "weather_delay",
        delayType : "weather_delay",
    }
}
{
...
}

我想减少集合中的文档,只获取minEffect 的值等于delayed Type 的值的文档。

为什么下面的代码不起作用?

{$match:{"_id.delayType":"$_id.minEffect"}}

参考上面的示例,预期的结果需要如下:

{
    _id : {
        airport : "MIA",
        minEffect : "weather_delay",
        delayType : "weather_delay",
    }
}
{
...
}

【问题讨论】:

    标签: mongodb match aggregate


    【解决方案1】:

    你可以像下面这样使用。

    {
        $match: {
          $expr: {
            $eq: [
              "$_id.minEffect",
              "$_id.delayType"
            ]
          }
        }
      }
    

    工作Mongo playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 2021-08-08
      • 1970-01-01
      • 2020-09-20
      • 2018-07-11
      • 1970-01-01
      • 2019-06-22
      相关资源
      最近更新 更多