我有一个有1000条记录的集合有一个字符串列。
我正在使用Jongo API查询mongodb。
我需要找到匹配的记录,其中列字符串以字母“AB”开头,以斜杠“/”结尾
需要查询查询以帮助选择相同的内容。
感谢。
答案 0 :(得分:6)
我将假设您知道如何使用Jongo API中的正则表达式进行查询,并且只是在寻找必要的正则表达式吗?
如果是这样,这个正则表达式将找到任何以'AB'开头的字符串(区分大小写),后跟任意数量的其他字符,然后以正斜杠('/')结束:
1e-9
如果您刚开始使用正则表达式,我强烈推荐使用Regex 101网站,这是一个非常棒的沙箱来测试正则表达式,并解释了表达式的每一步,使调试变得更加简单。
答案 1 :(得分:0)
我找到了解决方案,以下工作正常。
db.getCollection('employees').find({employeeName:{$regex: '^Raju.*\\/$'}})
db.getCollection('employees').find({employeeName:{$regex: '\/$'}})
getCollection().find("{employeeName:{$regex:
'^Raju.*\\\\/$'}}").as(Employee.class);
getCollection().find("{employeeName:{$regex: '\\/$'}}").as(Employee.class);
getCollection().find("{employeeName:#}",
Pattern.compile("\\/$")).as(Employee.class);
getCollection().find("{"Raju": {$regex: #}}", "\\/$").as(Employee.class);
map = new HashMap<>();
map.put("employeeName", Pattern.compile("\\/$"));
coll = getCollection().getDBCollection().find(new BasicDBObject(map));
答案 2 :(得分:0)
你可以试试这个。
public List<Product> searchProducts(String keyword) {
MongoCursor<Product> cursor = collection.find("{name:#}", Pattern.compile(keyword + ".*")).as(Product.class);
List<Product> products = new ArrayList<Product>();
while (cursor.hasNext()) {
Product product = cursor.next();
products.add(product);
}
return products;
}