【问题标题】:How can we call SetExpireAfterSeconds in go.mongodb.org/mongo-driver/mongo/options/indexoptions.go?我们如何在 go.mongodb.org/mongo-driver/mongo/options/indexoptions.go 中调用 SetExpireAfterSeconds?
【发布时间】:2021-02-16 20:16:42
【问题描述】:

我们如何在 go.mongodb.org/mongo-driver/mongo/options/indexoptions.go 中调用 SetExpireAfterSeconds ?

我需要在特定时间自动删除文档。我们如何使用 golang 实现这一点?我们如何在 golang 中使用 {expireAfterSeconds: 60} 和 mongo-driver 客户端库?

【问题讨论】:

    标签: mongodb go mongodb-query mongo-go


    【解决方案1】:

    options.IndexOptions 类型有一个 ExpireAfterSeconds 字段用于此目的。创建索引时使用options.Index()构建器轻松设置:

    indexName, err := coll.Indexes().CreateOne(
        context.Background(),
        mongo.IndexModel{
            Keys:    bson.D{{Key: "fieldName", Value: 1}},
            Options: options.Index().SetExpireAfterSeconds(60),
        },
    )
    

    【讨论】:

    • 感谢您的建议。我尝试使用上面的 sn-p ,成功创建集合并创建索引,但集合在指定时间后没有被删除。我们需要应用任何其他条件吗?
    • @harry_cool 您必须插入文档,其中fieldName 初始化为当前插入时间(time.Now())。
    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 2019-05-21
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多