簡體   English   中英

貓鼬find()返回未定義的屬性和奇怪的對象

[英]Mongoose find() returns undefined property and strange object

我有一個無法解決的錯誤,因為這是我第一次遇到。

這是我的查詢:

    Pack.find(
            {idclient: clientId }
        )
        .populate({
            path: 'cards',
            options: { sort: { 'position': 1 } }
        })
        . exec(function(err,pack){
            if(err){
                console.log(err);
            }else{

                 ///
                // here are my logs

                callback(pack);
            }
        });

當我嘗試console.log(pack)時,我會看到一個奇怪的\\ n返回

{ __v: 1,\n  _id: 5596a859240cbd3832123b27,\n  grouped: 0,\n  idclient: \'4Z8OrisV2AMLZn_lAAAA\',\n  matId: 5596a859240cbd3832123b26,\n  reversed: 0,\n  roomId: 5596a859e37d7e7099cec1e6,\n  shuffled: 0,\n  type: \'hand\',\n  cards: [ 5596a859240cbd3832123b28, 5596a85c240cbd3832123b5d ],\n  date: Fri Jul 03 2015 17:20:57 GMT+0200 (CEST),\n  iscut: 0 }

通常,我可以看到格式良好的Json對象。

所以,當我嘗試:

console.log(pack.property)=>未定義...

有人遇到過這個問題嗎?

謝謝

這一部分分為兩部分...

首先,來自Mongoose查找的回調返回一個數組... findOne將返回一個對象。

就新行而言,貓鼬文檔具有console.log的toString()幫助器。 可能會添加換行符以提高可讀性。 在調用console.log之前,將輸出包裝在JSON.stringify(即console.log(JSON.stringify(pack)) )中,您將看到文檔為不含換行符的字符串。 -http://mongoosejs.com/docs/api.html#document_Document-toString

find()返回一個數組,因此感謝Adam Wysocki,使用findOne()。

有時我是愚蠢的開發者。

當Told Model.find()生成一個數組時,這就是我處理這種情況的方式:

Kitten.find(function (err, kittens) {
    if (err) return console.error(err);
    kittens.forEach(function(kitten){
       console.log(kitten.name);
    }); 
});

在我看來,這是訪問屬性的最清晰方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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