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();
}
}