尝试从mongo集合中获取文档时,为什么会出现错误“客户端断开连接”?

我有mongo封顶的集合和一个简单的API(用Go编写)。我构建并运行它。当我尝试发送Get请求或只是在浏览器中进入localhost:8000 / logger时,我的进程关闭。调试显示这是在集合中执行“查找”时发生的。产生错误“客户端已断开连接”。集合有1个文档,并且调试显示它已与我的助手连接。

转到版本1.13

我的代码:

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/logger", getDocs).Methods("GET")
    r.HandleFunc("/logger", createDoc).Methods("POST")

    log.Fatal(http.ListenAndServe("localhost:8000", r))
}

func getDocs(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")

    var docs []models.Logger
    //Connection mongoDB with helper class
    collection := helper.ConnectDB()

    cur, err := collection.Find(context.TODO(), bson.M{})

    if err != nil {
        helper.GetError(err, w)
        return
    }
    defer cur.Close(context.TODO())

    for cur.Next(context.TODO()) {
        var doc models.Logger
        err := cur.Decode(&doc) 
        if err != nil {
            log.Fatal(err)
        }

        docs = append(docs, doc)
    }

    if err := cur.Err(); err != nil {
        log.Fatal(err)
    }

    json.NewEncoder(w).Encode(docs)
}

func ConnectDB() *mongo.Collection {
    client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://127.0.0.1:27017"))
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Connected to MongoDB!")
    logCollection := client.Database("local").Collection("loggerCollection")
    return logCollection
}