2016-04-03 10 views
1

返されたMongoDB(mongoose)findのプロパティにアクセスしようとしています。マングース - オブジェクトのプロパティにアクセスできませんか?

私はオブジェクト全体をログに記録しようとすると、私はそれをすべて見ることができます。しかし、私がプロパティを記録しようとすると、undefinedが得られます。オブジェクトはそこにあります!

function getAll() { 
    let d = q.defer(); 

    User.find({}, function (err, docs) { 
     if (err) { 
      d.reject(err); 
     } 

     for(let user of docs) { 
      console.log(user); // This works! 
      console.log(user.email); // This returns undefined! 
     } 

     d.resolve(); 
    }); 

    return d.promise; 
} 

私はJSON.parseをストリング化している場合に使用しようとしましたが(確かに)、そうではありませんでした。

UPDATE

私はuser._doc.emailを使用して結果にアクセスすることができますようにそう思えます。 これは何が原因ですか?私は前にこれをしなければならないことを覚えていない。

+0

コンソールには正確に何が表示されていますか? – Ryan

+0

@ RyanO'Hara 'undefined'ユーザーオブジェクト全体をログに記録すると、すべてのプロパティと値とともに、印刷されるはずのオブジェクトが印刷されます。 –

+0

また、最小データ挿入スクリプトに1データサンプルを提供できますか? – activatedgeek

答えて

7

console.logドキュメント全体が表示され、そのフィールドに直接アクセスしたときに表示されないフィールドは、モデルのスキーマ定義にフィールドがないことを意味します。

Userのスキーマにemailを追加してください。

+1

これは正しいです。ありがとうございました! –

+0

感謝の男!私はこの問題を見つけるのにほぼ一日を費やした。 – Sajeetharan

+0

はい!私はフィールドの名前を変更し、そこに忘れてしまいました。ありがとう –

関連する問題