选择最初未在文档中选择的内容

时间:2013-11-25 03:59:36

标签: mongoose

如果我运行这样的查询:

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 个答案:

答案 0 :(得分:1)

您无法将该字段添加到现有结果中。您必须使用findOne再次查询包含在选择字符串中的字段的文档。

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