Я пытаюсь отфильтровать свои данные (mongoDB) на основе параметров запроса, которые я буду отправлять в API, как показано ниже.Но mongoDB не поддерживает символы сравнения, поэтому я пытаюсь преобразовать все символы в соответствующие операторы запроса перед отправкой в find ().
GET /companies/?created_by<2&type<=Subsidiary&modified_by!=3
Для моего приведенного выше URL req.query будет выглядеть следующим образом:
{ 'created_by>2': '', // { created_by: { $gt: 2} }
'type<': 'Subsidiary', // { type: { $lte: Subsidiary } }
'modified_by!': '3' } // { modified_by: { $ne: 3 } }
У меня есть шесть случаев при фильтрации.Всякий раз, когда для фильтрации приходит определенное поле моих данных, я должен преобразовать его в соответствующий json.
field=value // { <field>: { $eq: <value> } }
field!=value // { <field>: { $ne: <value> } }
field<value // { <field>: { $lt: <value> } }
field>value // { <field>: { $gt: <value> } }
field<=value // { <field>: { $lte: <value> } }
field>=value // { <field>: { $gte: <value> } }
Ниже представлен мой объект json из двух полей (этот объект может измениться в зависимости от моей фильтрации):
{
'created_by>2': '',
'type<': 'Subsidiary'
}
Я хочу преобразовать указанный выше json в формат ниже с параметрами запроса nodejs ($ gt, $ lte).
{
created_by: { '$gt': '2' },
type: { '$lte': 'Subsidiary' }
}
Как преобразовать с использованием nodejs?