我正在用流星和JavaScript构建一个webapp,并且想要根据属性过滤JSON对象。我可以运行fullList.find()
以获取所有内容,并且fullList.find({'Color': 'r'})
仅获取“红色”项目,但是我想返回所有“红色”或“蓝色”项目,但无法找出正确的语法。我尝试过各种组合,例如fullList.find({'Color': 'r' || 'b'})
和fullList.find({'Color': ('r' || 'b')})
,但它不是完全运行,就是返回只有一个属性的项目,而不是返回项目。我觉得这应该是一个简单的解决方案,我只是不太熟悉JavaScript。。MongoDB中的.find()有多个条件
这是我的(相关)完整性代码。仅在以下两个条件为真(与一个或三个)的逻辑失败:
indicadores: function(){
if (Session.get("displayUrgencies")){
if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display all");
return fullList.find();
}
else {
console.log("display urgencies and insufficiencies");
return fullList.find({'Color': 'v' || 'r'});
}
}
else {
if (Session.get("displayStrengths")){
console.log("display urgencies and strengths");
return fullList.find({'Color': 'b' || 'r'});
}
else {
console.log("display urgencies");
return fullList.find({'Color': 'r'});
}
}
}
else if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display insufficiencies and strengths");
return fullList.find({'Color': 'v' || 'b'});
}
else {
console.log("display insufficiencies");
return fullList.find({'Color': 'v'});
}
}
else if (Session.get("displayStrengths")){
console.log("display strengths");
return fullList.find({'Color': 'b'});
}
else {
console.log("display all (default)");
return fullList.find();
}
},
正如您目前所拥有的那样,第二次返回从不运行。它在第一个返回中评估语句,然后返回,停止执行。 –
这是偶然从我身上试图想到的任何事情;如果没有第二次回报,它仍然不起作用。我将编辑代码以反映它现在的实际情况;对此感到抱歉 –
你使用'.find'的库是什么? –