MongoDB 字符串值长度条件查询
在实际项目中常常会有根据字段值长度大小进行限制查询,例如查询商品名称过长或过短的商品信息,具体的实现方式可能有多种,在此记录常见的两种实现
-
使用 $where 查询(性能稍逊一些)
|
1
2
3
4
5
|
//查询商品名称长度大于25个字符的商品db.item.find({item_name:{$exists:true},$where:"(this.item_name.length > 25)"}).limit(5)//查询商品名称长度小于5个字符的商品db.item.find({$where:"this.item_name.length < 5"}).limit(5) |
-
使用正则表达式查询(性能比$where 高)
|
1
2
3
4
5
|
//查询商品名称长度大于25个字符的商品db.item.find({"item_name": {"$exists": true, "$regex": /^.{25,}$/}}).limit(5)//查询商品名称长度小于5个字符的商品db.item.find({"item_name": {"$regex": /^.{0,5}$/}}).limit(5) |
Java 使用 Spring data mongodb:
|
1
2
3
4
5
|
String pattern = String.format("^.{%s,}$", overlength);Criteria criteria = Criteria.where("item_name").regex(pattern, "m");Query query = new Query(criteria);mongoTemplate.find(query, Item.class)
|
我的网站 http://www.a-du.net


浙公网安备 33010602011771号