code: public static String generateIndexName(final BsonDocument index) {
          StringBuilder indexName = new StringBuilder();
          for (final String keyNames : index.keySet()) {
              if (indexName.length() != 0) {
                  indexName.append('_');
              }
              indexName.append(keyNames).append('_');
              BsonValue ascOrDescValue = index.get(keyNames);
              if (ascOrDescValue instanceof BsonNumber) {
                  indexName.append(((BsonNumber) ascOrDescValue).intValue());
              } else if (ascOrDescValue instanceof BsonString) {
                  indexName.append(((BsonString) ascOrDescValue).getValue().replace(' ', '_'));
              }
          }
          return indexName.toString();
      }
docs: Convenience method to generate an index name from the set of fields it is over.
  
  @return a string representation of this index's fields