Node.js Mongoose Model find()返回带有节点js的空数组

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

当我试图使用mongoose模型从数据库中获取数据时,我总是得到空数组。 我使用nodejs和express,通过find()函数使用mongoose从mongodb获取数据

但是当我使用
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
   }