当我尝试使用mongoose模型从数据库中获取数据时,我总是得到空数组。 我使用带有express的nodejs通过使用find()函数使用mongoose从mongodb获取数据。
但是当我在mongoshell中使用db.collectionname.find({});
时,我获得了所有的值。
以下是我的型号代码:
var mongoose = require('mongoose');
mongoose.set('debug', true);
var schema = mongoose.Schema;
var countriesSchema = new schema({
id : {
type : Number,
required : true
},
code : {
type : String,
required :true
},
name : {
type : String,
required : true
},
phonecode : {
type : Number,
required : true
}
});
var Countries = module.exports = mongoose.model('Countries', countriesSchema);
module.exports.getCountries = function(callback){
Countries.find({}, callback);
}
以下是我的路由文件代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var router = express.Router();
var configMain = require('./../config/main');
var https = require('https');
var querystring = require('querystring');
var countriesModel = require('./../database/models/countries.model');
var statesModel = require('./../database/models/states.model');
var citiesModel = require('./../database/models/cities.model');
router.get('/get-country-city-state',function(req, res, next){
var response = {};
if(req.query.type == "getCities"){
citiesModel.getCities(req.query.stateId, function(err, cities){
sendResponse(err, cities);
});
}else if(req.query.type == "getStates"){
statesModel.getStates(req.query.countryId, function(err, states){
sendResponse(err, states);
});
}else if(req.query.type == "getCountries"){
countriesModel.getCountries(function(err, countries){
sendResponse(err, countries);
});
}else{
sendResponse(err, null);
}
//res.send($response);
});
function sendResponse(err, data){
if(err){
res.send(err);
}
console.log(data);return;
/*for(var i = 0; i <= data.length; i++){
}
response = {'success' : 1, 'result' : dataResult};*/
}
module.exports = router;
在我的数据库中,我有以下数据:
{
"_id": ObjectId("58d018733b3161574df5ebe1"),
"id": 1,
"code": "AF",
"name": "Afghanistan",
"phonecode": 93
}
在我的console.log(data)
中,当我拿到所有国家时,我正在变空阵列。