$ match在$ project-computed-field上匹配

时间:2018-04-26 14:35:26

标签: mongodb mongodb-query

我有一个聚合查询,其中$project从时间戳中提取年份,如下所示:

{
        $project: {
                year : {$year : { $add: [new Date(0), {$multiply: ["$timestampField", 1000 ]}]}},   
                ...

我希望以这样的方式使用$gte运算符来过滤输出结果,但是当我在年份字段上应用$gte时结果仍然有变化:

{
            $project: {
                year : {$gte: [{$year : { $add: [new Date(0), {$multiply: ["$timestampField", 1000 ]}]}}, 2018]},  
                ...

我自然尝试在$gte上使用$match,但输出结果为[](void),因为 - 我相信 - 字段年在查询中计算并{{1} }只能在预先存在的字段上运行。简而言之,这样的事情不起作用:

$match

我不打算将计算字段添加到集合模式以利用{ $project: { year : {$year : { $add: [new Date(0), {$multiply: ["$timestampField", 1000 ]}]}}, ... { $match: { "year": {$gte: 2018}, ... ,除此之外,我似乎找不到任何关于如何满足我的用例的文档。

可行吗?如果是这样,我错过了什么?

编辑: 来自集合的样本文档:

$match

0 个答案:

没有答案