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 )

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM