我有一个名为Project的集合。下面是项目集合的架构描述:
const projectSchema = new mongoose.Schema(
{
projectName: {
type: String,
trim: true
},
licenceType: {
type: String,
trim: true,
lowercase: true
},
location: {
type: String,
lowercase: true,
trim: true
},
description: {
type: String,
trim: true
},
projectType: {
type: String,
default: 'public'
},
status: {
type: String,
default: 'open'
},
budget: {
type: Number
},
duration: {
type: Number
},
},
{
timestamps: true
}
);
我想使用这些字段作为过滤器来获取文档。字段是:
- 许可证类型
- 地点
- 日期(为此目的在模式中设置时间戳)
我可以任意组合使用这三个字段来获取文档。有可能根本没有应用过滤器,在这种情况下,它只是简单地获取集合中的所有文档。
我知道我可以使用if--else if--else动态构建查询,但我想知道是否有任何其他更有效的方式来处理此类查询,而不是使用 if--else 块。如果有五个或更多字段用于过滤目的,那么使用 if--else 块将有很多组合需要检查。
感谢任何形式的帮助!谢谢。