无法通过mongoose包含和排除查询字段

时间:2014-04-02 08:46:48

标签: node.js mongodb mongoose

我有一些架构并进行如下查询:

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.

我正在动态生成字段字符串以包含或排除所需的字段。

如何摆脱错误。

1 个答案:

答案 0 :(得分:4)

这实际上与猫鼬无关。 "限制"存在于mongo内部。

来自collection.find documentation

  

除了排除_id字段外,投影不能同时包含include和exclude规范。在明确包含字段的投影中,_id字段是您可以明确排除的唯一字段。


您要么包含,排除,您不能同时执行这两项操作(_id除外)

仅选择_idone

'one'

选择除two

以外的所有字段
'-two'

例外:仅选择one 而不 _id

'one -_id'