Cast json string as decimal, dates
Peewee 3.0a supports a `Cast` type and corresponding method.

```python
# untested, but should be about right
query = MyModel.select().where(Model.json['num'].cast('numeric') >= 100)
print query.count()
```

In Peewee 2.x you can:

```python
from playhouse.shortcuts import cast
query = MyModel.select().where(cast(Model.json['num'], 'numeric') >= 100)
print query.count()
```

And yes, you can use these approaches for joining.
In SQLAlchemy, I could do:

```
        session\
            .query(Model)\
            .filter(Model.json['num'].astext.cast(db.Numeric) >= Decimal(100))\
            .count()
```

I want to use the JSON field to store custom attributes in the form of decimal, dates and references to other objects (to do joins). Is there a similar cast method? Could I do joins with it?