2016-05-17 10 views
0

Я пытаюсь получить данные из mongoDB. В моей схеме года - это не единственный, так что я сделал следующее:Получить данные с помощью node.js из mongoDB

app.get('/getBestByYear/:year', function(req, res) {  
Stud.find({}).where('year').in(req.params.year).where('grade').gt(89).exec(function(err,students){ 
      if(err) throw err; 
      res.json(students); 
     }); 
    }) 

Я получаю пустую строку .. Что я сделал не так?

+0

Я не уверен, если '.в()' может обрабатывать аргумент не-массив. Почему бы не использовать '.equals (req.params.year)'? Кроме того, я предполагаю, что полученный запрос действительно соответствует некоторым документам? – robertklep

+0

да, конечно! но он все равно возвращает мне пустую строку – user3488862

+0

Я бы предположил, что Mongoose будет отличать свойства до нужного типа, но, чтобы быть уверенным, вы можете попробовать '.equals (Number (req.params.year))' (или, возможно, .where ('year', req.params.year) ')? Кроме того, попробуйте использовать ['.getQuery()'] (http://mongoosejs.com/docs/api.html#query_Query-getQuery), чтобы узнать, работает ли запрос Monguose в оболочке MongoDB. – robertklep

ответ

0

вы можете попробовать этот код

console.log(req.params.year); // show to verify year is valid 
Stud.find({year: {$in: [req.params.year]}, grade: {$gt: 89}}).exec(function (err, students) { 
    if (err) throw err; 
    res.json(students); 
}) 

 Смежные вопросы

  • Нет связанных вопросов^_^