コード
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://<username>:<password>@<host>:<port>"))
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)
}
説明する
<username>:<password>@<host>:<port>
独自の mongodb 接続に置き換えます。
- パスワードが設定されていない場合、接続情報には次のものが使用されます。
mongodb://<host>:<port>
- この例は、特定のデータベースの特定のコレクションについて 10 分前に生成されたすべてのドキュメントを削除することを意味します。