猫鼬与条件查询不同

时间:2020-04-27 16:49:26

标签: mongodb mongoose distinct

我正在尝试对具有返回值动态条件的集合使用猫鼬独特函数。当我在“常规”字段上使用它时,它可以正常工作,但是当我尝试在嵌套字段上使用它时,则不起作用,每次都返回不同的结果。

对于以下示例,它返回了'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);

0 个答案:

没有答案