private Bson renderLogicalOperator()

in flink-connector-mongodb/src/main/java/org/apache/flink/connector/mongodb/table/MongoFilterPushDownVisitor.java [159:180]


    private Bson renderLogicalOperator(String operator, List<ResolvedExpression> operands) {
        Bson[] filters = new Bson[operands.size()];
        for (int i = 0; i < operands.size(); i++) {
            ResolvedExpression operand = operands.get(i);
            BsonValue filter = operand.accept(this);

            // sub-filters that cannot be pushed down
            if (!filter.isDocument() || filter.asDocument().isEmpty()) {
                return Filters.empty();
            }
            filters[i] = filter.asDocument();
        }

        switch (operator) {
            case "$or":
                return Filters.or(filters);
            case "$and":
                return Filters.and(filters);
            default:
                return Filters.empty();
        }
    }