This isn't a bash question per se -- everything in that command is a set of arguments to the unix find(1) command, which would behave the same regardless of what shell you invoke it from.
Given this, what you really need to do is look at the documentation for find(1) -- and you can do that by running:
$ man find
or, if your version of find is the Gnu one (as it will be if you are running Linux),
$ info find
for a more book-like document.
For your second question: many commands (particularly those which are part of the Gnu project) use long option flags of the form
$ command --long-argument --other-long-argument
as an alternative to short arguments of the form
$ command -lo
$ command -l -o
. Commands which do so will use '--' instead of '-' at the start of such flags, to make clear which type of option flag is coming.