如果我运行这样的查询:
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
,但我找不到关于如何将其添加到选择中的解释(最好只针对本文档)。很抱歉,如果有明显的答案,我在文档中没有看到任何内容。
答案 0 :(得分:1)
您无法将该字段添加到现有结果中。您必须使用findOne
再次查询包含在选择字符串中的字段的文档。
Thing.findOne({_id: doc._id}).select('name bigstuff').exec(function (err, doc) {
doc.isSelected('name') // true
doc.isSelected('bigstuff') // true
})