我有一些架构并进行如下查询:
mongoose.model('mymodel').find({}, 'one -two -__v', function(err,docs){});
我希望文档只返回字段'one'。始终忽略字段'two'并且全部休息。 然后我得到以下错误:
You cannot currently mix including and excluding fields. Contact us if this is an issue.
我正在动态生成字段字符串以包含或排除所需的字段。
如何摆脱错误。
答案 0 :(得分:4)
这实际上与猫鼬无关。 "限制"存在于mongo内部。
来自collection.find documentation
除了排除
_id
字段外,投影不能同时包含include和exclude规范。在明确包含字段的投影中,_id
字段是您可以明确排除的唯一字段。
您要么包含,或排除,您不能同时执行这两项操作(_id
除外)
仅选择_id
和one
'one'
选择除two
'-two'
例外:仅选择one
而不 _id
'one -_id'