Extract the number of leap seconds in subframe 4, page 18, and use that to convert GPS time to UTC time

Store it in the 'messages' collection and add and index for it.
Sometimes it's incorrect though, so at least check that it's increasing.
Store subframe data as bytes instead of 24-bit "words"

Avoid endian issues.
Store the query in a BSONObj object, not a Query object
Use the correct byte for leap seconds delta

The Navstar document isn't clear on placement within the subframe. And I wasn't counting the telemetry/handof words at the start.