Node.js Mongoose Model find()返回带有节点js的空数组
当我试图使用mongoose模型从数据库中获取数据时,我总是得到空数组。 我使用nodejs和express,通过find()函数使用mongoose从mongodb获取数据 但是当我使用Node.js Mongoose Model find()返回带有节点js的空数组,node.js,express,mongoose,Node.js,Express,Mongoose,当我试图使用mongoose模型从数据库中获取数据时,我总是得到空数组。 我使用nodejs和express,通过find()函数使用mongoose从mongodb获取数据 但是当我使用db.collectionname.find({})时在mongoshell中,我将获得所有值 以下是我的型号代码: var mongoose = require('mongoose'); mongoose.set('debug', true); var schema = mongoose.Schema; v
db.collectionname.find({})时代码>在mongoshell中,我将获得所有值
以下是我的型号代码:
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;
在我的console.log(data)
中,当我获取所有国家的数据时,我得到的是空数组。在您的代码中,一切似乎都很好。您确定已连接到您从mongoshell查询的同一数据库吗?是的,它已连接到同一数据库此数据库有任何更新吗?我遇到了几乎相同的问题。在更改为其他数据库之前,我已成功使用了另一个数据库和集合。我更改了连接的数据库,并在mongo client中成功地测试了获取数据,但是当尝试通过我的节点应用程序获取数据时,它返回了一个空数组。当切换回为我工作的DB时,我开始怀疑它是否与在“工作”DB中的文档上创建的_v:0属性有关。代码中的一切似乎都很好。您确定已连接到您从mongoshell查询的同一数据库吗?是的,它已连接到同一数据库此数据库有任何更新吗?我遇到了几乎相同的问题。在更改为其他数据库之前,我已成功使用了另一个数据库和集合。我更改了连接的数据库,并在mongo client中成功地测试了获取数据,但是当尝试通过我的节点应用程序获取数据时,它返回了一个空数组。当切换回为我工作的DB时,我开始怀疑它是否与在“工作”DB中的文档上创建的_v:0属性有关。
{
"_id": ObjectId("58d018733b3161574df5ebe1"),
"id": 1,
"code": "AF",
"name": "Afghanistan",
"phonecode": 93
}