docs: def query(options, collection_name,
            num_to_skip, num_to_return, query, field_selector=None):
      """Get a **query** message.
      """
      data = struct.pack("<I", options)
      data += bson._make_c_string(collection_name)
      data += struct.pack("<i", num_to_skip)
      data += struct.pack("<i", num_to_return)
      data += bson.BSON.encode(query)
      if field_selector is not None:
          data += bson.BSON.encode(field_selector)
      return __pack_message(2004, data)