|
21 | 21 | import com.dtstack.flink.sql.side.PredicateInfo; |
22 | 22 | import com.mongodb.BasicDBObject; |
23 | 23 | import org.apache.commons.lang3.StringUtils; |
| 24 | +import org.bson.Document; |
24 | 25 |
|
25 | 26 | import java.util.Arrays; |
26 | 27 | import java.util.stream.Collectors; |
|
32 | 33 | */ |
33 | 34 | public class MongoUtil { |
34 | 35 | public static BasicDBObject buildFilterObject(PredicateInfo info) { |
| 36 | + |
| 37 | + String value = info.getCondition().replaceAll("'", ""); |
35 | 38 | switch (info.getOperatorName()) { |
36 | 39 | case "=": |
37 | | - return new BasicDBObject("$eq", info.getCondition()); |
| 40 | + return new BasicDBObject("$eq", value); |
38 | 41 | case ">": |
39 | | - return new BasicDBObject("$gt", info.getCondition()); |
| 42 | + return new BasicDBObject("$gt", value); |
40 | 43 | case ">=": |
41 | | - return new BasicDBObject("$gte", info.getCondition()); |
| 44 | + return new BasicDBObject("$gte", value); |
42 | 45 | case "<": |
43 | | - return new BasicDBObject("$lt", info.getCondition()); |
| 46 | + return new BasicDBObject("$lt", value); |
44 | 47 | case "<=": |
45 | | - return new BasicDBObject("$lte", info.getCondition()); |
| 48 | + return new BasicDBObject("$lte", value); |
46 | 49 | case "<>": |
47 | | - return new BasicDBObject("$ne", info.getCondition()); |
| 50 | + return new BasicDBObject("$ne", value); |
48 | 51 | case "IN": |
49 | | - Object[] values = Arrays.stream(StringUtils.split(info.getCondition(), ",")).map(String::trim) |
| 52 | + Object[] values = Arrays.stream(StringUtils.split(value, ",")).map(String::trim) |
50 | 53 | .collect(Collectors.toList()).toArray(); |
51 | 54 | return new BasicDBObject("$in", values); |
52 | 55 | case "NOT IN": |
53 | | - return new BasicDBObject("$nin", StringUtils.split(info.getCondition(), ",")); |
| 56 | + return new BasicDBObject("$nin", StringUtils.split(value, ",")); |
54 | 57 | case "IS NOT NULL": |
55 | 58 | return new BasicDBObject("$exists", true); |
56 | 59 | case "IS NULL": |
|
0 commit comments