Я пытаюсь отфильтровать свой результат от MongoDB. Я использую экспресс. Вот мои console.logs:
- {Personalbest: { '$ GT': '170'}, имя: { '$ GT': 'М'}}
- {personalbest: {'$ gt': '170'}, name: {'$ gt': 'M'}}
Код:
var filters = req.query.filters
db.collection('skijumper').find(filters).toArray()
И, конечно, я получаю эту ошибку:
MongoError: селектор запросов должен быть объектом
Каков наилучший способ преобразования этой req.query в объект? Спасибо
Внешний интерфейс:
var filters = {personalbest:{'$gt':'170'},name:{'$gt':'M'}};
var url = "http://localhost:3000/test?filters=" + encodeURIComponent(JSON.stringify(filters));
Backend:
var filters = JSON.parse(req.query.filters);
req.params
илиreq.query
является просто «строкой». ФактическиbodyParser
промежуточное программное обеспечениеbodyParser
для превращения содержимогоreq.body
в реальный объект. Вы, вероятно, должны вместо этого отправлять объект вbody
. Но по сутиJSON.parse
«строка» в «объект». Это означает, что вам, вероятно, нужно также «цитировать» в кодировке urlencoding. Так что, кажется, гораздо проще отправить тело запроса.