Node Js:Mongoose可以找到对象

时间:2014-09-30 13:51:13

标签: node.js mongodb mongoose find

所以我在mongolabs上有一个看起来像这样的mongodb:

收集"新闻"

 [{
"_id": {
    "$oid": "542aab88e4b0e67da1edd1bd"
},
"year": 2014,
"data": {
     "someinfo":"cool info"
 }
}]

在节点上我有以下内容:

 //dependencies
 var mongoose = require("mongoose");
 var Schema = mongoose.Schema;

 //Setting up the schemas
    var newsSchema = new Schema({
        year: String, 
        data: Object
    });
    mongoose.model('news',newsSchema);

  //routes
  var mongolabs = express.Router();
  mongolabs.route('/List/:type1/:year')
  .get(function(req, res){
           mongoose.model(req.params.type1).find({year:req.params.year}, function(err,suc) {
            res.jsonp(suc);
           });
    });
    app.use('/mongo', mongolabs);

不幸的是,当我去http:/// mongo / List / news / 2014时,它返回空。 我已经尝试了所有我能想到的东西,不用说我是mongoose,node和mongodb的新手。

2 个答案:

答案 0 :(得分:1)

您可能正在将null传递给.find()方法。

你这样做:

{ year: req.params.type1.year }

,当你应该做的时候:

{ year: req.params.year }

答案 1 :(得分:1)

您尝试查询number值为string的值,因此结果为空。

尝试在您的参数之前添加req.params.years,将unary plus转换为数字。

{ year: +req.params.year }

您也可以使用parseInt()函数:

var year = parseInt(req.params.years, 10);