连接到MongoDB
在使用Golang和mongo-go-driver库之前,首先需要确保已成功连接到MongoDB数据库。以下是连接到MongoDB的示例代码:```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并进行基本的错误检查。现在,让我们看看如何删除文档。删除单个文档
要删除MongoDB中的单个文档,我们需要指定要删除的集合和查询条件。例如,假设我们有一个名为"users"的集合,我们要删除age小于18岁的用户文档。```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对象。 最后,我们打印出已删除的文档数量。批量删除文档
有时候,我们可能需要删除MongoDB集合中多个文档。为此,可以使用DeleteMany方法。```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方法删除匹配的文档。