Запрос MongoDB - передать функцию в Model.find () - PullRequest
0 голосов
/ 20 июня 2019

У меня проблема с запросом 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);, то не работает.

Первый вопрос, возможно ли передать функцию в качестве параметра, подобного этому?

Любое предложение будет оценено.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...