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

cod*_*ode 2 mongoose mongodb node.js

我有一些架构和查询如下:

mongoose.model('mymodel').find({}, 'one -two -__v', function(err,docs){});
Run Code Online (Sandbox Code Playgroud)

我希望文档应该只返回字段“一”。始终忽略字段“二”并全部休息。然后我收到以下错误:

You cannot currently mix including and excluding fields. Contact us if this is an issue.
Run Code Online (Sandbox Code Playgroud)

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

如何摆脱错误。

mač*_*ček 5

这实际上与猫鼬无关。“限制”存在于 mongo 本身。

来自collection.find 文档

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


你要么包括,要么排除,你不能同时做,(除了_id

仅选择_idone

'one'
Run Code Online (Sandbox Code Playgroud)

选择所有字段,除了 two

'-two'
Run Code Online (Sandbox Code Playgroud)

例外:只选择one 没有 _id

'one -_id'
Run Code Online (Sandbox Code Playgroud)