使用mongoose在mongoDB中搜索通配符



我正在从前端获取一些值。查询它们并返回结果。目前我有

async fetchStats(getStatQuery: GetStatQueryDto): Promise<any> {
const stats = await this.statModel.find({
title: getStatQuery.title,
weight: getStatQuery.weight
});
return stats;
}

如果没有,getStatQuery.title可以是undefined,也可以发送getStateQuery.weight。现在,如果未定义,我希望find忽略该字段并将该字段过滤为通配符。除了人工检查,还有其他方法吗?

async fetchStats(getStatQuery: GetStatQueryDto): Promise<any> {
const tmp = {
title: getStatQuery.title,
weight: getStatQuery.weight
};
let query = {};
for(const [key, value] of Object.entries(tmp))
if (value !== undefined)
query[key] = value

const stats = await this.statModel.find(query);
return stats;
}

如果查询有更多字段,您唯一需要做的就是在tmp变量中添加键值对。for循环将忽略未定义值的字段。

相关内容

  • 没有找到相关文章

最新更新