簡體   English   中英

貓鼬發現回歸奇怪的物體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM