У меня проблема с запросом MongoDB (Mongoose) путем передачи function
в качестве параметра в Model.find()
->, например, Model.find(searchCondition)
.Я надеюсь, что вы можете помочь мне.
// Fetching patients from the database
exports.getPatients = (req, res, next) => {
const criterionSearchCategory = req.query.kriterijumPretrage;
const ageSearchCategory = req.query.kriterijumGodina;
const searchInputValue = req.query.pojamPretrage;
console.log({ [criterionSearchCategory]: { [ageSearchCategory]: Number([searchInputValue]) }});
// Patient search condition, based on selected option from select dropdown
function searchCondition() {
if (criterionSearchCategory == 'undefined') {
return {};
} else if (criterionSearchCategory == 'age') {
return { [criterionSearchCategory]: { [ageSearchCategory] : Number([searchInputValue]) }}
} else {
return { [criterionSearchCategory]: { $in: [ "/^" + searchInputValue + "/i" ]}}
}
}
...
const patientQuery = Patient.find(searchCondition);
getPatients(patientsPerPage: number, currentPage: number, criterionSearchCategory: string, searchInputValue: string, ageSearchCategory: any) {
const queryParams = `?pacijenataPoStranici=${patientsPerPage}&trenutnaStranica=${currentPage}&kriterijumPretrage=${criterionSearchCategory}&pojamPretrage=${searchInputValue}&kriterijumGodina=${ageSearchCategory}`;
this.http
.get<{ message: string, patients: any, maxPatients: number }>( BACKEND_URL + queryParams)
// Execute map on every data that makes it through Observable stream
.pipe(map((patientData) => {
Я хочу иметь в виду, когда я передаю параметры запроса вручную , например const patientQuery = Patient.find({ age: { '$gt': 30 } });
соответствующие пациенты будутвыбран правильно, но когда я передаю функцию, как это const patientQuery = Patient.find(searchCondition);
, то не работает.
Первый вопрос, возможно ли передать функцию в качестве параметра, подобного этому?
Любое предложение будет оценено.Спасибо