我正在尝试对具有返回值动态条件的集合使用猫鼬独特函数。当我在“常规”字段上使用它时,它可以正常工作,但是当我尝试在嵌套字段上使用它时,则不起作用,每次都返回不同的结果。
对于以下示例,它返回了'work.company'中存在的所有文档
我的收入查询请求:
{ query: 'e',
usedIds: '', // string separated by commas where each 'word' represent a value that shouldn't return again
searchFields: 'work.company' // it works for searchFields: 'name'
}
我试图退回所需文件
const regex = new RegExp('^' + req.query.query + '.*');
const query = [];
searchFields.split(",").forEach(field => {
field = field.trim();
if (field) {
query.push({ [field]: { $regex : regex } });
}
});
let field = Object.keys(query[0])[0];
const distinctQuery = {
[field]: { $nin: usedIds },
$or: query
};
employees = await Employee.distinct(field, distinctQuery);