登录
首页 >  Golang >  Go问答

在Golang的Mongodb中查找与最新日期相关的记录

来源:stackoverflow

时间:2024-02-14 12:39:27 357浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《在Golang的Mongodb中查找与最新日期相关的记录》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

type History struct {
    ID           primitive.ObjectID           `bson:"_id"`
    ConfigId     string                       `bson:"configId"`
    IsClosed    bool                          `bson:"isClosed"`
    CreatedTime  time.Time                    `bson:"createdTime"`
    ValidityTime time.Time                    `bson:"validityTime"`
}

这是我的 mongodb 数据结构

我想实现这个目标

  1. 通过配置id查找配置时间组最新的记录
  2. 稍后过滤 isclosed = true 且 validitytime 小于当前时间的所有配置

正确答案


对于第二种情况,您可以聚合使用 $match 阶段:

{
  isclosed: true,
  validitytime: {$lt: isodate()}
}

golang 示例聚合:

histories := []*History{}

cursor, err := collection.Aggregate(ctx, mongo.Pipeline{
bson.D{
        {"$match",
            bson.D{
                {"isClosed", true},
                {"validityTime", bson.D{{"$lt", time.Date(2022, 10, 13, 6, 2, 38, 0, time.UTC)}}},
            },
        },
    },
})
if err != nil {
   return nil, err
}

if err := cursor.All(&history); err != nil {
   return nil, err
}

请详细说明:

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>