尝试搜索数据库时是否有搜索所有过滤器?我有多个选择框,我想获得值,然后根据值,它搜索数据。我发现我需要为每个选择框都有一个if语句来检查它是默认值(String)还是选定值(Integer)。
items.find({
"person.age": obj.age, //is 'All'
"person.gender": obj.gender // is 'male'
},{
limit: this.state.limit
}).fetch()
在上面的例子中,一个是默认值(全部),另一个是所选值。当我尝试搜索时,由于“全部”而无法返回任何内容。我正在寻找一个符号或其他东西来取代所有'。
答案 0 :(得分:2)
@masteram是对的 - 你想避免使用包含All
的密钥 - mongodb中没有*
。您可以同时简化逻辑。
以下内容仅会复制obj
不等于All
的密钥,然后对这些密钥进行搜索:
const person = {};
Object.keys(obj).forEach((k) => {
if (obj[k] !== 'All') person[k] = obj[k];
});
items.find(person, { limit: this.state.limit }).fetch()