mongodb - Golang 上的 MongoDB,获取最近 15 分钟内插入的记录
问题描述
我正在尝试获取在过去 15 分钟内插入的记录。
虽然它给了我在最后 15 分钟内插入的记录,但在 15 分钟过去后,它仍然显示在 15 分钟后插入的记录。我的代码:
if len(userIds) > 0 {
dashboardAggregations = append(dashboardAggregations, bson.M{"$match": bson.M{"_id": bson.M{"$in": userIds}}})
}
cursor, err = locationCollection.Aggregate(dbContext, dashboardAggregations)
if err != nil {
return nil, err
}
if len(dashboardAggregations) > 3 {
dashboardAggregations = dashboardAggregations[:len(dashboardAggregations)-1]
}
以下是我的聚合结构:
var dashboardAggregations = bson.A{
bson.M{
"$match": bson.M{
"created_at": bson.M{
"$gte": primitive.NewDateTimeFromTime(time.Now().Add(-15 * time.Minute)),
},
},
},
bson.M{
"$sort": bson.M{
"serial": -1,
},
},
bson.M{
"$group": bson.M{
"_id": "$userId",
"users": bson.M{"$push": "$$ROOT"},
},
},
}
我提前感谢任何帮助。
解决方案
创建检查用户的新匹配聚合
bson.M{
"$match": bson.M{
"created_at": bson.M{
"$gte": primitive.NewDateTimeFromTime(time.Now().Add(-15 * time.Minute)),
},
"user_id": "123123133123",
},
},
如果用户参数不存在,则此聚合
bson.M{
"$match": bson.M{
"created_at": bson.M{
"$gte": primitive.NewDateTimeFromTime(time.Now().Add(-15 * time.Minute)),
},
},
},
推荐阅读
- angular - PrimeNG 编辑器组件自动关注页面加载
- html - PHP 空用户名/密码输入
- python - 如何制作基于文本的界面 (TUI/TLI) 来监控 OpenFOAM 求解器日志文件?
- aws-cognito - AWS Cognito 用户迁移 - 用户迁移期间出现异常
- javascript - 将对象转换为数组javascript
- python - 根据分页限制计算偏移量
- unity3d - 盒子对撞机碰撞如何在数学上工作?
- mysql - Mysql触发器使用匹配数据插入行另一个表
- asp.net - Authentication 或 Map 中间件中启动时出现 Owin InvalidOperation 异常
- .net - 使用 C# 将数据从 Excel 插入数据库