2014-03-03 116 views
7

貓鼬的請求,我有我的文檔doc之後是查詢貓鼬爲現有字段

這裏的結果返回undefined是使用

var searchSchema = new mongoose.Schema({ 
    original : String, 
    images : [String], 
    image: String 
}); 

模型架構:

var searchModel = mongoose.model('Search', searchSchema); 

使用的代碼:

searchModel.findOne({original : input}, function (err, doc) { 
    if (err) { 
     console.log(err); 
    } 
    if (typeof doc !== "undefined") { 
     console.log(doc); 
        console.log(doc.image); 
    } 
}); 

第一console.log

{ 
    _id: 531401bf714420359fd929c9, 
    image: 'http://url.com/image.jpg', 
    original: 'lorem ipsum dolor sit amet' 
} 

第二返回undefined,但前一個確實顯示現有image屬性,這意味着它的存在。

我的模式沒有什麼特別的東西,所以我不明白什麼可以被這裏發生的一切..

回答

5

當您沒有將該字段添加到模式時,您會看到此內容。

添加image到您的架構,它應該工作:

image: String 
+0

它已經是。我嘗試刪除所有文檔,更改字段名稱並檢查以確保它位於模式中,然後重新添加所有內容,並且當屬性存在時(並且我甚至可以在我的查詢中選擇它),但我嘗試時未定義奇怪地訪問它 – Malharhak

+0

@Malharhak你可以更新你的問題,包括定義模式和模型的代碼,並執行創建'doc'的查詢嗎? – JohnnyHK

+0

我使用這些信息對其進行了更新 – Malharhak

-1

嘗試使用括號標記類似:

doc['image'] 

如果一切正常,我我不能解釋你爲什麼,但也許有人可以對此有所瞭解?

+0

是的,我嘗試過,但它沒有改變任何東西 – Malharhak

+0

你能提供你正在做的查詢嗎? – inwpitrust

+0

我在問題 – Malharhak

0

這是做該對象的toString()方法返回_doc財產的事實。您可以使用: console.log(doc._doc.image);