The example probably isn't the best. If you assume that each coffee shop is independant and a reviewer needs to create an account for each coffeeshop they want to review, then the relationship makes sense. If a reviewer wants to create 1 account and review many coffee shops, then a hasManyThrough relationship would be better (many-to-many).
For your other question, the hasMany relationship is a one-to-many relationship, so each reviewer has 1 coffeeShopId. To query the data, you need to create a "hasMany" reationship in the coffeeShop model and a "belognsTo" relationsthip in the Reviewer model.
To get a list of reviewers for a coffee shop your filter would look like:
filter ={include:'reviewers'}
To see the coffeeshop a reviewer has reviewed (or belongs to in this case), your filter looks like this:
filter={include:'coffeeShop'}