首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >猫鼬日期$gte操作符未按预期工作

猫鼬日期$gte操作符未按预期工作
EN

Stack Overflow用户
提问于 2020-08-05 20:45:22
回答 1查看 169关注 0票数 0

我正在尝试编写上周的查询,但它在mongoDB中并不像预期的那样工作。

代码语言:javascript
复制
[{
    $lookup: {
        from: 'reviews',
        localField: 'groupReviews',
        foreignField: '_id',
        as: 'groupReviews'
    }
}, {
    $match: {
        $and: [{
                _id: {
                    $eq: ObjectId('5f247eea8ad8eb53883f4a9b')
                }
            },
            {
                "groupReviews.reviewCreated": {
                    $gte: ISODate('2020-06-20T10:24:51.303Z')
                }
            }
        ]
    }
}, {
    $project: {
        count: {
            $size: "$groupReviews",
        },
        groupReviews: {
            $slice: ["$groupReviews", 0, 20],
        }
    }
}, {
    $sort: {
        "groupReviews.reviewCreated": -1
    }
}]

实际结果:上面的代码返回的结果早于2020-06-20。

预期结果:它不应显示在2020年-06-20年以前。

我附上一张图片,以供更多参考。

图像链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-06 00:22:57

$match阶段匹配整个文档,而不是单个数组元素。如果数组包含至少一个满足$gte条件的元素,则文档将被匹配并沿着管道传递。

如果要删除比给定日期更早的单个数组元素,则可以选择

  • 在匹配之前对数组进行$unwind,并在$group中只使用匹配的条目重新生成数组
  • 在您的$filter阶段使用$project来消除切片前不需要的元素
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63273238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档