千家信息网

怎么在MongoDB中实现多条件模糊查询

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,怎么在MongoDB中实现多条件模糊查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。模糊查询是数据库的基本操作之一,实现对给定的字符串
千家信息网最后更新 2025年01月23日怎么在MongoDB中实现多条件模糊查询

怎么在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中实现多条件模糊查询的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0