collection.find({})不返回的NodeJS收集记录
问题描述:
我试图用collection.find
collection.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
?
答
试试这个。
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
这就是它哥们..谢谢了。 。:) –
@RolandStarke ..嗯,我希望这AINT这种情况下。随着'query' PARAMS传递给'find',它会给我的数据,但不是空.. –