1
貓鼬新問題。我試圖建立一個MEAN應用程序,根據用戶輸入的參數查詢現有的數據庫。外部程序正在使用JSON填充數據庫。貓鼬路由特定查詢輸出
到目前爲止,我有我的路由器成功地顯示,當我使用下面的路由器所有的Mongo的記錄:
// Pulls all JSONs
router.get('/jsons', function(req, res, next) {
Json.find(function(err, jsons){
if(err) { return next(err);}
res.json(jsons);
});
});
現在我試圖創建一個單獨的路徑,可以在該數據庫中顯示的特定字段。 (凡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);
});
});
這是返回null對我來說,雖然原來的路線表明,一個JSON記錄確實有紐約的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模式有一個TestLocation字段,它與MongoDB數據庫中的TestLocation字段相匹配,但我在MongoDB數據庫中還包含很多未包含在模式中的字段。我是否需要包括這些才能看到這個工作?
謝謝!
欣賞關於數據不匹配的答案。不幸的是,改變findOne還沒有解決我的問題。需要繼續環顧四周。 – 2015-02-06 18:15:16
其實它看起來像我發現我自己的問題。我查詢的變量實際上是一個大對象內的參數。 – 2015-02-06 18:24:33