重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
怎么在MongoDB中实现多条件模糊查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在青州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站设计 网站设计制作按需定制开发,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,外贸网站建设,青州网站建设费用合理。
模糊查询是数据库的基本操作之一,实现对给定的字符串是否与指定的模式进行匹配。如果字符完全匹配,可以用=等号表示,如果部分匹配可认为是一种模糊查询。在关系型数据中,通过SQL使用like ‘%fens%'的语法。那么在mongodb中我们应该如何实现模糊查询的效果呢。
查询条件
关键字 | 说明 |
---|---|
$or | 或关系 |
$nor | 或关系取反 |
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | 在多个值范围内 |
$nin | 不在多个值范围内 |
$all | 匹配数组中多个值 |
$regex | 正则,用于模糊查询 |
$size | 匹配数组大小 |
$maxDistance | 范围查询,距离(基于LBS) |
$mod | 取模运算 |
$near | 邻域查询,查询附近的位置(基于LBS) |
$exists | 字段是否存在 |
$elemMatch | 匹配内数组内的元素 |
$within | 范围查询(基于LBS) |
$box | 范围查询,矩形范围 |
$center | 范围查询,圆形范围 |
$centerSphere | 范围查询,球形范围 |
$slice | 查询字段集合中的元素(比如从第几个之后,第N到第M个元素) |
模糊查询
精准查询
//Mongodb数据库表 const systemUser = require('../../models/user'); systemUser.find({name:'xiaoming'}).exec(function(err,rs){}
多条件模糊查询
//Mongodb数据库表 const systemUser = require('../../models/user'); //前端传入的要查询的关键字 var name = req.query.name; var page = req.query.page || 1; //当前页数 var limitNums = 10; //指定每一页查询的条数 page = parseInt(page); var skipNums = (page - 1) * limitNums; //跳过指定数量 //正则匹配 i忽略大小写 var reg = new RegExp(name, "i"); var _filter = { //多字段匹配 $or: [ {name: {$regex: reg}}, {description: {$regex: reg}}, {owner: {$regex: reg}}, ] } systemUser.find(_filter). //跳过指定数量的数据 skip(skipNums). //指定从MongoDB中读取的记录条数。 limit(limitNums). sort({createTime:-1}). exec(function(err,rs){}
看完上述内容,你们掌握怎么在MongoDB中实现多条件模糊查询的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!