[英]Mongoose find returning odd object
我當前的問題是使用db.collection.find()mongoose命令。 我對mongoose / mongodb比較新,但我已經掌握了它的概念。 這是我一直試圖運行的測試代碼:
mongoose.connect(url);
function main()
{
var db = mongoose.connection;
db.on('open', function() {
db.collection('Tweet').find({id: 631460910368956400}, function (err, data){
console.log(data);
})
/*var coll = db.collection('Tweet');
db.collection('Tweet').findOne({id: 631460910368956400},function (err, ret) {
if(err) console.log(err);
console.log(ret['id']);
//db.close();
});*/
});
}
main();
從未注釋掉的字段返回的數據是一個奇怪的對象:
{ connection: null,
server: null,
disconnectHandler:
{ s: { storedOps: [], storeOptions: [Object], topology: [Object] },
length: [Getter] },
bson: {},
ns: 'TEST.Tweet',
cmd: { find: 'TEST.Tweet', limit: 0, skip: 0, query: {}, slaveOk: false },
options:
{ skip: 0,
limit: 0,
raw: undefined,
hint: null,
timeout: undefined,
slaveOk: false,
db:
{ domain: null,
_events: [Object],
_maxListeners: undefined,
s: [Object],
serverConfig: [Getter],
bufferMaxEntries: [Getter],
databaseName: [Getter],
等等......它持續的時間更長。
IP地址是成功連接的遠程連接。 我可以做一些事情,比如添加和刪除文檔,但實際上無法從javascript中查看文檔。 我知道它是由於某種異步問題引起的,但是我不確定如何修復它。 此外,.findOne()的注釋掉的代碼似乎在上面的代碼中完全提取數據。
.find()函數的代碼會出現什么問題? 解釋為什么數據檢索中的當前錯誤也會很好。
謝謝你的幫助!
您收到的對象是Cursor
,它是用於檢索實際結果的對象。
當您確定您的查詢永遠不會返回多個對象時(例如,在這種情況下,您通過始終唯一的_id
字段進行查詢),您可以使用db.collection('Tweet').findOne(
它將僅返回該對象)附加的間接層。
但是當您的查詢可能返回多個文檔時,您需要使用游標。 要解析游標,可以使用cursor.toArray
將其轉換為文檔數組:
db.collection('Tweet').find({}, function (err, cursor){
cursor.toArray().forEach(function(doc) {
console.log(doc);
});
})
這是最簡單的版本。 有關游標的更多信息,請參閱上面鏈接的文檔。
順便說一句:到目前為止,您只使用了本機驅動程序的功能。 如果要使用Mongoose查詢對象,可能需要使用Mongoose模型對象的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.