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

56次阅读
没有评论

共计 1267 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

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

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1267字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)