当前位置: 首页 > 后端技术 > Node.js

MongoDB多条件模糊查询

时间:2023-04-03 12:29:43 Node.js

前言模糊查询是数据库的基本操作之一,实现给定的字符串是否匹配指定的模式。如果字符完全匹配,可以用=等号表示,如果部分匹配,可以认为是模糊查询。在关系数据中,通过SQL使用类似“%fens%”的语法。那么我们应该如何在mongodb中实现模糊查询的效果呢。查询条件关键字描述$oror关系$noror关系取反$gt大于$gte大于等于$lt小于$lte小于等于$ne不等于$in为多以内valueranges$nin不在多个取值范围内$all匹配数组中的多个值$regex正则,用于模糊查询$size匹配数组大小$maxDistance范围查询,距离(基于LBS)$mod模运算$nearneighborhoodquery,查询附近位置(基于LBS)$exists字段是否存在$elemMatch匹配数组中的元素$within范围查询(基于LBS)$box范围查询,矩形范围$center范围查询,圆形范围$centerSphere范围查询,球形范围$slice查询字段集合中的元素(例如从数字后第N个元素到第M个元素)模糊查询精确查询//Mongodb数据库表constsystemUser=require('../../models/用户');systemUser.find({name:'xiaoming'}).exec(function(err,rs){}多条件模糊查询//Mongodb数据库表constsystemUser=require('../../models/user');//从前端传入的需求查询关键字varname=req.query.name;varpage=req.query.page||1;//当前页码varlimitNums=10;//指定查询次数perpagepage=parseInt(page);varskipNums=(page-1)*limitNums;//跳过指定个数//正则匹配i忽略大小写varreg=newRegExp(name,"i");var_filter={//多字段匹配$or:[{name:{$regex:reg}},{description:{$regex:reg}},{owner:{$regex:reg}},]}systemUser.find(_filter).//跳过指定Numberofdataskip(skipNums).//指定从MongoDB读取的记录数。limit(limitNums).sort({createTime:-1}).exec(函数(err,rs){}