Heat the olive oil in a large pot over medium heat. Add the onion, carrots, and celery. Cook for 5 minutes until the vegetables start to soften.
Stir in the garlic and zucchini. Cook for 2 more minutes until the garlic smells fragrant.
Pour in the diced tomatoes and vegetable broth. Add the oregano and bring the mixture to a boil.
Lower the heat to a simmer. Add the cannellini beans and elbow pasta. Cook for 10 minutes, stirring occasionally, until the pasta is tender.
Stir in the spinach and cook for 1 minute until it wilts. Season with salt and black pepper to taste.
Ladle the soup into bowls and top each serving with grated parmesan.