小编kam*_*rba的帖子

过滤不存在​​字段的子文档

我有对象集合,其中每个对象都包含版本,其中一些版本具有删除字段,并希望过滤这些未删除或晚于给定时间戳的对象。

db
.getCollection('test')
.aggregate([
{$project:
 {versions:
  {$filter:
   {input: '$versions',
    as: 'version',
    cond:
    {
        $or: [
        {$gte: ['$$version.delete', 3]},
        {'$$version.delete': {$exists: false}}
        ]
    }
   }
  }
 }
}
])
Run Code Online (Sandbox Code Playgroud)

但字段名称可能无法在过滤器中使用,因为我收到一个错误:invalid operator '$$version.delete'

任何想法这个查询的正确语法是什么?

mongodb mongodb-query aggregation-framework

2
推荐指数
1
解决办法
1056
查看次数