一、使用mongoDB命令行测试可行性
- 模糊
db.getCollection('xxxx').find({"xxx":{$regex:".*12.*"}})
- 右模糊
db.getCollection('xxxx').find({"xxx":{$regex:"12.*"}})
- 左模糊
db.getCollection('xxxx').find({"xxx":{$regex:".*12"}})
mongoDB支持使用正则来实现左右模糊
二、MongoTemplate 左右模糊实践
- 模糊
Pattern pattern = Pattern.compile(".*" + value + ".*", Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where(field).regex(pattern));
- 右模糊
pattern = Pattern.compile(value + ".*", Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where(field).regex(pattern));
- 左模糊
pattern = Pattern.compile(".*" + value, Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where(field).regex(pattern));
三、参考文档
https://blog.csdn.net/LXB15959168136/article/details/52253415