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);
    }
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);
    }
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 ) ; }
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
Creates a $unwind pipeline stage for the specified field name which must be prefixed by a { @code $ } sign .