Опрос Мангуста по полю - PullRequest
       2

Опрос Мангуста по полю

0 голосов
/ 27 сентября 2018

Я пытаюсь запросить у этого объекта мангуста ' Порядок ' в экспрессе.Однако, когда я добавляю переменную querystring в скобках для find , это не работает.Я немного растерялся в документации о том, как решить эту проблему.

router.get('/allorders', jwtAuth, function(req,res,next) {
    const userID = req.user.username;
    const querystring = "{orderedByUser: '" + userID + "'}";

//Order.find() works

Order.find(querystring)
.then(orders =>{
     res.json(orders).end();
}).catch( err=> {
    res.status(500).json({error: 'Something went wrong!'});
      });
});

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы знаете почему, потому что условие, которое нужно передать Model.find(), должно быть object:

Model.find ()

Параметры

  • условия «Объект»
  • [проекция] «Объект | Строка» необязательные поля для возврата, см. Query.prototype.select ()
  • [опции] «Объект» необязательно, см. Query.prototype.setOptions ()
  • [обратный вызов] «Функция»

Возвращает

  • «Запрос»

Поиск документов

Например:

// named john and at least 18
MyModel.find({ name: 'john', age: { $gte: 18 }});

// executes immediately, passing results to callback
MyModel.find({ name: 'john', age: { $gte: 18 }}, function (err, docs) {});

В ваших кодах вы передаетеstring к этому методу вместо object.

Затем попробуйте это:

router.get('/allorders', jwtAuth, function(req,res,next) {
    const userID = req.user.username;
    const conditionsObject = {orderedByUser: userID}; // fixed

//Order.find() works

Order.find(conditionsObject) // fixed
.then(orders =>{
     res.json(orders).end();
}).catch( err=> {
    res.status(500).json({error: 'Something went wrong!'});
      });
});

Дополнительную информацию о методе Model.find() вы можете прочитать здесь: https://mongoosejs.com/docs/api.html#model_Model.find

Надеюсь, это поможет.

0 голосов
/ 27 сентября 2018

find принимает запрос объект , а не строка.Так и должно быть:

Order.find({orderedByUser: userID}).then(...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...