发布时间:2024-11-22 00:48:54
```go package main import ( "context" "fmt" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) func main() { // 设置MongoDB连接选项 clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 连接到MongoDB client, err := mongo.Connect(context.TODO(), clientOptions) if err != nil { fmt.Println("Failed to connect to MongoDB:", err) return } // 检查数据库连接 err = client.Ping(context.TODO(), nil) if err != nil { fmt.Println("Failed to ping MongoDB:", err) return } fmt.Println("Connected to MongoDB!") } ```
使用上述代码,我们可以连接到MongoDB并进行基本的错误检查。现在,让我们看看如何删除文档。```go collection := client.Database("mydb").Collection("users") filter := bson.D{{"age", bson.D{{"$lt", 18}}}} result, err := collection.DeleteOne(context.TODO(), filter) if err != nil { fmt.Println("Failed to delete document:", err) return } fmt.Printf("Deleted %v document(s)\n", result.DeletedCount) ```
在上述代码中,我们首先获取到要删除的集合,然后使用bson.D类型创建一个过滤器来指定查询条件。在这个例子中,我们将age字段小于18的用户作为过滤条件。 然后,我们使用DeleteOne方法在集合中删除匹配的文档。DeleteOne方法返回具有删除信息的DeleteResult对象。 最后,我们打印出已删除的文档数量。```go filter := bson.D{{"age", bson.D{{"$lt", 18}}}} result, err := collection.DeleteMany(context.TODO(), filter) if err != nil { fmt.Println("Failed to delete documents:", err) return } fmt.Printf("Deleted %v document(s)\n", result.DeletedCount) ```
与删除单个文档的代码类似,我们指定了一个过滤器来选择要删除的文档。然后,我们使用DeleteMany方法删除匹配的文档。