driver-core/src/main/com/mongodb/client/model/Aggregates.java
public static Bson lookup(final String from, final String localField, final String foreignField, final String as) {
        return new BsonDocument("$lookup", new BsonDocument("from", new BsonString(from))
                                                   .append("localField", new BsonString(localField))
                                                   .append("foreignField", new BsonString(foreignField))
                                                   .append("as", new BsonString(as)));
    }
public static Bson lookup(final String from, final String localField, final String foreignField, final String as) {
        return new BsonDocument("$lookup", new BsonDocument("from", new BsonString(from))
                                                   .append("localField", new BsonString(localField))
                                                   .append("foreignField", new BsonString(foreignField))
                                                   .append("as", new BsonString(as)));
    }
Creates a $lookup pipeline stage, joining the current collection with the one specified in from
using equality match between the local field and the foreign field

@param from         the name of the collection in the same database to perform the join with.
@param localField   the field from the local collection to match values against.
@param foreignField the field in the from collection to match values against.
@param as           the name of the new array field to add to the input documents.
@return the $lookup pipeline stage
@mongodb.driver.manual reference/operator/aggregation/lookup/ $lookup
@mongodb.server.release 3.2
@since 3.2