mongoose路由特定查询输出

mongoose新问题。 我试图构build一个MEAN应用程序,根据用户input的参数查询现有的数据库。 数据库正在由外部程序填充JSON。

到目前为止,当我使用下面的路由器时,我有我的路由器成功地显示所有的Mongologging:

// Pulls all JSONs router.get('/jsons', function(req, res, next) { Json.find(function(err, jsons){ if(err) { return next(err);} res.json(jsons); }); }); 

现在我试图创build一个单独的路线,可以显示该数据库中的特定字段。 (其中TestLocation =“纽约”)

 // Pulls a JSON with City New York router.get('/jsons/NewYork', function(req, res, next) { var queryNYC = Json.where({TestLocation: "New York"}); queryNYC.findOne(function(err, jsons) { if(err) { return next(err);} res.json(jsons); }); }); 

尽pipe原始路由表明一个JSONlogging的确具有纽约的TestLocation,但是这对我来说是空的。

我的模式如下所示:

 var mongoose = require('mongoose'); // Base schema for the query results table var JsonSchema = new mongoose.Schema({ uploadID: String, uploadDate: Date, testDate: Date, username: String, type: String, markers: String, image: String, TestLocation: String }, { collection: 'data' } ); mongoose.model('Json', JsonSchema); 

所以我的问题是:

A)我是否正确设置了这个

B)我需要我的Mongoose模式来匹配数据库中的内容吗? 我的Mongoose模式有一个TestLocation字段,它与MongoDB数据库中的TestLocation字段相匹配,但是在MongoDB数据库中还包含很多未包含在模式中的字段。 我需要包括这些看到这个工作?

谢谢!

你在做什么看起来很好,你的数据库中的数据不必与你的数据相同。 使用以下内容:

 Json.findOne({TestLocation: "New York"}, function(err, jsons) { if(err) { return next(err);} res.json(jsons); });