Ниже приведен пример документа в моей коллекции MongoDB:комбинат MongoDB Запросы
{
"countries": ["IN", "US", "UK"],
"regions": ["North", "South", "East", "West"],
"types": ["A", "C"],
"doc": {
"prop" : "value"
}
}
На основании для входных параметров и информации сеанса, я должен запросить страны, регионы и типы. Мой код JavaScript, чтобы для запросов по странам и регионам хотелось бы это:
if(inputCountry && !inputRegion) {
db.collection.find({countries: inputCountry}, callback);
} else if(!inputCountry && inputRegion) {
db.collection.find({regions: inputRegion}, callback);
} else if(inputCountry && inputRegion)
db.collection.find({countries: inputCountry, regions: inputRegion}, callback);
} else {
db.collection.find({}, callback);
}
Как вы видите, я уже имея 4, если-иначе условия для стран и регионов. Когда я также запрашиваю по типу, это становится более сложным из-за различных комбинаций и становится очень подверженным ошибкам.
Есть ли способ избежать этого, и мы можем объединить запросы манго?
Откуда берутся эти входные параметры? Если они из объекта 'req.query' или' req.params', тогда вы можете структурировать свой запрос без использования условных операторов. – chridam
два из req.query и один из req.session. как это сделать без условностей? –