Нужна помощь в оптимизации запроса к MongoDB

Только начинаю свой путь в Golang + MongoDB, подскажите, возможно ли ускорить как-то этот код (ниже) Я так понимаю, .Find() выгружает результат запроса в память в виде курсора, я произвожу необходимые сравнения, могу ли я как-то сформировать результат сравнения тоже в памяти и удалить сразу массово все соответствующие критериям данные? Или в Mongo придется удалять построчно? получается очень медленно.

filter := bson.D{{"share_name", task_id}}
    timeout := options.Find().SetNoCursorTimeout(true)
    cursor, err := task_collections.Find(context.TODO(), filter, timeout)
    if err != nil {
        panic(err)
    }
    
    for cursor.Next(context.TODO()) {
        // A new result variable should be declared for each document.
        var result bson.M
        if err := cursor.Decode(&result); err != nil {
            errorLog.Fatal(err)
        }
         doc_hash := fmt.Sprintf("%v", result["hash"])
         if !check_other_hash(doc_hash){
            
            filter := bson.M{"_id": doc_hash}
            del, err := hash_collections.DeleteOne(context.TODO(), filter)
            if err != nil {
                errorLog.Fatal(err)
               }
            _ = del
            
            //fmt.Printf("Deleted document with _id: %v\n", del.DeletedCount)
         }
         running_task_progress("curr", i, task_id+" PRUNE")
         i++
    }
    if err := cursor.Err(); err != nil {
        errorLog.Fatal(err)
    }

Ответы (0 шт):