code: public static Bson unwind(final String fieldName, final UnwindOptions unwindOptions) {
          notNull("unwindOptions", unwindOptions);
          BsonDocument options = new BsonDocument("path", new BsonString(fieldName));
          Boolean preserveNullAndEmptyArrays = unwindOptions.isPreserveNullAndEmptyArrays();
          if (preserveNullAndEmptyArrays != null) {
              options.append("preserveNullAndEmptyArrays", BsonBoolean.valueOf(preserveNullAndEmptyArrays));
          }
          String includeArrayIndex = unwindOptions.getIncludeArrayIndex();
          if (includeArrayIndex != null) {
              options.append("includeArrayIndex", new BsonString(includeArrayIndex));
          }
          return new BsonDocument("$unwind", options);
      }
docs: Creates a $unwind pipeline stage for the specified field name, which must be prefixed by a {@code '$'} sign.
  
  @param fieldName     the field name, prefixed by a {@code '$' sign}
  @param unwindOptions options for the unwind pipeline stage
  @return the $unwind pipeline stage
  @mongodb.driver.manual reference/operator/aggregation/unwind/ $unwind
  @mongodb.server.release 3.2
  @since 3.2