1
排除查詢的領域我有一些模式,使查詢如下:無法包含並通過貓鼬
mongoose.model('mymodel').find({}, 'one -two -__v', function(err,docs){});
我想要的文件應該只返回了場「一」。總是忽略字段'two'並全部休息。 然後我得到以下錯誤:
You cannot currently mix including and excluding fields. Contact us if this is an issue.
我產生所述場字符串動態地包含或排除所需的字段。
如何擺脫錯誤。
正要提到這是一個MongoDB的問題,但被添加。仍值得一提的是,「版本」字段是貓鼬特有的,因此不能以這種方式排除。但是,您可以具體說明使用聚合的字段。 –
@NeilLunn,我不太清楚你的意思。如果您願意,請隨時編輯我的答案。 –
我不喜歡正確的答案,只是留下一張紙條。關鍵是要查看聚合管道的[$ project](http://docs.mongodb.org/manual/reference/operator/aggregation/project/)操作符。它比'.find()'中的投影更具體。與$ match操作符一起使用,最終得到更好的'.find()'版本。特別是在[新版本](http://docs.mongodb.org/master/release-notes/2.6/#aggregation-enhancements)中.agagregate()返回一個遊標。 –