code: ReadPreference getCommandReadPreference(final DBObject command, @Nullable final ReadPreference requestedPreference) {
          String comString = command.keySet().iterator().next().toLowerCase();
          boolean primaryRequired = !OBEDIENT_COMMANDS.contains(comString);
  
          if (primaryRequired) {
              return ReadPreference.primary();
          } else if (requestedPreference == null) {
              return ReadPreference.primary();
          } else {
              return requestedPreference;
          }
      }
docs: Determines the read preference that should be used for the given command.
  
  @param command             the {@link DBObject} representing the command
  @param requestedPreference the preference requested by the client.
  @return the read preference to use for the given command.  It will never return {@code null}.
  @see com.mongodb.ReadPreference