When query returns no results return null rather than throw exception. Also
added one() function to get first result.
One function throws an exception if there is more than one result