当数据存在时,Mongoose显示0结果

时间:2017-02-16 18:32:17

标签: node.js mongodb mongoose

我使用mongodb作为我的后端,它在索引_entity中有大约400个文档。

我正在使用mongoose和我的nodejs并按如下方式查询,

 getCountries : function(event,context,callback){            
              dbHelper.query(mongoose.model('_entity'), {},function(error,data){
              console.log(data);
                callback(data);       
            });   

这是dbHelper。

query : function(model, conditon,options) {
        return new Promise(function(resolve, reject) {
            options = options||{};               
            model.find(conditon, {}, options, function(error, data) {
                if (error)                  
                    reject(error);                    
                resolve(data);
            })
        })
    }

代码有什么问题吗?当我在mongo客户端上运行查询时,它会显示结果。

enter image description here

1 个答案:

答案 0 :(得分:1)

您在查询中返回一个承诺,因此您需要使用.then方法而不是回调。

 getCountries : function(event,context,callback){            
          dbHelper.query(mongoose.model('_entity'), {}).then(function(data){

           }); 
 }

编辑: 如果您正在使用mongoose4,那么您可以像查询本身一样返回一个承诺。

query : function(model, conditon,options) {
            options = options||{};               
            return model.find(conditon, {}).exec();
    }

你仍然需要保留.then与之前的回复。