我正在尝试查询选择项,当输入4个字母的客户名称中有匹配项时进行搜索,问题是我必须进行查找并填充以查看客户是否在代理商内,然后我用搜索到的字词进行查找,但似乎不起作用。
router.get('/search', async (req, res, next) => {
const query = {};
query['value.name'] = {$regex: '.*' + req.query.q + '.*', $options: 'i'};
query['value.deleted'] = false;
let clients = null;
try {
const header = req.get('Authorization');
const token = split(header, /\s+/).pop();
const data = jwt.verify(token, sessionSecret);
clients = await model.Agency.findOne({'auctioneers.value': new ObjectId(data.id)}, 'clients').sort('-createdAt').populate('clients.value', '-password').find({
'$and': [query]
}).exec();
console.log(clients);
res.send(clients);
} catch (err) {
next(err);
}
});
return router;
};
逻辑是:首先,我执行一个findOne来查看用户是否被该代理机构所吸引,然后该代理机构拥有一系列客户,然后填充它们,之后,我需要用从中获得的搜索字词对它们进行过滤查询,现在控制台日志正在
{ clients: [ { value: [Object] } ],
_id: 5b8ea80a7eae100020b89898 }
我该如何尝试?