学堂 学堂 学堂公众号手机端

精准查询和多条件模糊查询

lewis 1年前 (2024-04-03) 阅读数 5 #技术

模糊查询是数据库的基本操作之一,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多条件模糊查询的介绍,本文对新手具有一定的借鉴价值,有需要的朋友可以看看,希望本文的内容对大家的学习或者工作有帮助。

关键字说明
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门