collection.find({})不返回的NodeJS收集记录

collection.find({})不返回的NodeJS收集记录

问题描述:

我试图用collection.findcollection.find({})不返回的NodeJS收集记录

var DTX = mongoose.models.dtx; 
var detx = DTX.find({}); 

来从一个集合中的所有记录,但是,当我console.log(detx),它给了我如下的回应:

{ _mongooseOptions: {}, 
    mongooseCollection: 
    { collection: 
     { db: [Object], 
     collectionName: 'dtx', 
     internalHint: null, 
     opts: {}, 
     slaveOk: false, 
     serializeFunctions: false, 
     raw: false, 
     pkFactory: [Object], 
     serverCapabilities: undefined }, 
    opts: { bufferCommands: true, capped: false }, 
    name: 'ddtx', 
    conn: 
     { base: [Object], 
     collections: [Object], 
     models: [Object], 
     replica: false, 
     hosts: null, 
     host: 'localhost', 
     port: 27017, 
     user: undefined, 
     pass: undefined, 
     name: 't23', 
     options: [Object], 
     otherDbs: [], 
     _readyState: 1, 
     _closeCalled: false, 
     _hasOpened: true, 
     _listening: true, 
     _events: [Object], 
     db: [Object] }, 
    queue: [], 
    buffer: false }, 
    model: 
    { [Function: model] 
    base: 
     { connections: [Object], 
     plugins: [], 
     models: [Object], 
     modelSchemas: [Object], 
     options: [Object], 
     dbConnected: true }, 
    modelName: 'dtx', 
    model: [Function: model], 
    ..... 
    } 
    ..... 
    } 
    ..... 
} 

我读了几个帖子,然后我意识到在nodejs这返回cursor。那么我尝试如下:

var detx=DTX.find({},function(err,cursor){ 
      cursor.each(err,item){ 
       return item; 
      }); 
     }); 

这也没有帮助。如何在没有任何条件的情况下从集合中获取所有记录作为array

+0

@RolandStarke ..嗯,我希望这AINT这种情况下。随着'query' PARAMS传递给'find',它会给我的数据,但不是空.. –

试试这个。

var DTX = mongoose.models.dtx; 
var detx = []; 
DTX.find({}) 
    .exec(function (err, dtxArray) { 

     if (err) 
     console.log(err); 

     console.log('DTX Array: ', dtxArray); 

     detx = dtxArray; 
}); 
+0

这就是它哥们..谢谢了。 。:) –