字段过滤
2020-03-26 本文已影响0人
HuFan_JS
mongodb隐藏字段
mongodb中所有字段默认都会被查找到,若我们不想让字段被查找到,可以在字段后面加上: select:false,表示该字段在find()查找的时候会被过滤掉
获取被隐藏的字段
但是一些特殊情况,比如我们在获取我们自己的个人信息的时候,我们应该是可以获取到我们自己的全部信息的,那么我们可以用过select()方法,通过特定的字符串获取指定的字段
格式如:select(' +education +gender')
async findById(ctx) {
const { fields } = ctx.query
var selectedfields = ''
if (fields) {
const fieldsArray = fields.split(';')
selectedfields = fieldsArray.map(element => ' +' + element).join('')
}
const user = await await User.findById(ctx.params.id).select(selectedfields)
if (!user) {
ctx.throw(404, '用户不存在')
}
ctx.body = user
}