Also note that both collections can be used at the same time. The JSONCollection doesn't support all the operations that BSONCollection does and also isn't quite as strong with data typing. JSON just doesn't contain as much information as BSON. As an example, JSON supports a type Number while BSON distinguishes between different types of numbers.
I would say if you don't use JSON otherwise, then go for BSON. If you use JSON, either still use BSONCollection or use a combination to get the full range of capabilities, like findAndModify commands.
We use BSON just about exclusively for saving data but sometimes fetch it with JSON if we just want to pass the JSON as it is to our client.