mongoose根据关键字模糊查询(包括前端模糊查询)

2022-08-11 18:51:44 浏览数 (1)

后端:

使用new RegExp()实例对象

eg:

代码语言:javascript复制
const Schema = mongoose.model("modelName")
let reg = new RegExp("查询关键词")
awati Schema.fine || where(say:reg).exec().then(res=>{
成功回调})
.catch(err=>{
失败回调
})

前端:

eg:

代码语言:javascript复制
var arr = ['草莓','苹果']
newArr = []
for(var i = 0;i<arr.length;i  ){
if(arr[i].indexOf('草')>=0){
newArr.push(arr[i])
}
console.log(newArr) //// [草莓]
}

前端映射添加接口字段

两种方法es5通过indexOf(),es6通过map()、...拓展运算符等

// 接口数据

代码语言:javascript复制
var resObj = [{id:1},{id:0},{id:2}]
// 自己定义数组
selfObj = [
{id:0,name:'灯'},
{id:1,name:'无线开关'},
{id:2,name:'空调'},
]
resArr = []
selfArr = []

//期望:给接口数据添加name字段 需要跟自己定义的数组id 对应起来

//例如:接口数据 id为0的的对象 添加name为灯

// id为1的的对象 添加name为无线开关

es5

代码语言:javascript复制
resObj.forEach(function(e){resArr.push(e.id)})
selfObj.forEach(function(e){selfArr.push(e.id)})
console.log(resArr)
for(var i =0;i<selfArr.length;i  ){
//遍历出自定义数组每一个id 在接口 id 数组中的位置
// 接口id.indexOf(每一个数组Id) 返回每一个自定义数组id在接口数组id中的位置
//然后通过这个的位置 去给接口数组添加name字段 添加的内容为:这个位置下自定义数组的name
var index = resArr.indexOf(selfArr[i])
//添加字段
resObj[i].name = selfObj[index].name
}
console.log(resObj)

es6

代码语言:javascript复制
//方案2 通过自定义数组 映射新的对象 id为key name为值
var newObj = {};
selfObj.forEach( item => { newObj[item.id] = item.name})
console.log(newObj)
// 一个是空箭头函数,一个是箭头函数返回一个空对象
// 返回一个空对象:map(ele=>({}))
// 空的箭头函数: map(ele=>{})
// 方式1
resObj = resObj.map(ele =>({...ele,name:newObj[ele.id]}))
// 方式2
resObj = resObj.map(ele=>{return {...ele,name:newObj[ele.id]}})
// 两种方式结果是一样的
console.log(resObj)

0 人点赞