Si tiene la intención de usar $gt con cadenas, tendrá que usar regex, que no es excelente en términos de rendimiento. Es más fácil simplemente crear un nuevo campo que contenga el valor numérico del precio o cambiar este tipo de campo a int/doble. Una versión de javascript también debería funcionar, así:
db.products.find("this.price > 30.00")
como js lo convertirá en número antes de usarlo. Sin embargo, los índices no funcionarán en esta consulta.