【mongodb】golang连接mongodb,根据时间戳删除历史数据

代码

package main

import (
	"context"
	"fmt"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/bson/primitive"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"log"
	"time"
)

func main() {
	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
	defer cancel()
	client, _ := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://:@:"))

	// 检查连接
	err := client.Ping(ctx, nil)
	if err != nil {
		log.Fatal("无法连接到 MongoDB:", err)
	}
	fmt.Println("成功连接到 MongoDB!")
	
	timestamp := time.Now().Add(-10 * time.Minute) // 十分钟之前
	docID := primitive.NewObjectIDFromTimestamp(timestamp)
	fmt.Println(docID.Hex())
	
	database := client.Database("database_name")
	collection := database.Collection("collection_name")
	filter := bson.M{ // 比 特定时间戳小的都删除
		"_id": bson.M{
			"$lt": docID,
		},
	}
	collection.DeleteMany(ctx, filter)
}

说明

  • :@: 自行替换成自己的mongodb连接
  • 如果没设置密码, 连接信息使用mongodb://:
  • 示例表示 删除 特定dababase 的 特定 collection 的 10 分钟之前生成的所有文档

你可能感兴趣的:(mongodb,golang,数据库)