2013-11-25 54 views
0

文檔中的選擇。如果我運行一個查詢是這樣的:選擇的東西不是最初

Thing.findOne().select('name').exec(function (err, doc) { 
}) 

...然後我可以訪問doc.name從回調,而不是doc.bigstuff。有一個很小的機會,我需要訪問doc.bigstuff,它往往超過800KB,所以我不想查詢它,如果我不需要它。我看到,我可以做到這一點的文檔:

Thing.findOne().select('name').exec(function (err, doc) { 
    doc.isSelected('name') // true 
    doc.isSelected('bigstuff') // false 
}) 

...找出如果我選擇doc.bigstuff,但我找不到任何有關如何將其添加到選擇的解釋(最好是剛對本文件)。對不起,如果有明顯的答案,我沒有看到文檔中的任何內容。

回答

1

您不能將該字段添加到現有的結果。您必須再次使用包含在選擇字符串中的字段重新查詢findOne

Thing.findOne({_id: doc._id}).select('name bigstuff').exec(function (err, doc) { 
    doc.isSelected('name') // true 
    doc.isSelected('bigstuff') // true 
}) 
+0

謝謝,我擔心可能是這樣。順便說一句,爲什麼不使用'Thing.findById'? – JJJollyjim

+0

@ JJ56'findById'也很好;它只是相同查詢的快捷方式。 – JohnnyHK

相關問題