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){}
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论