回答
最簡單的方法就是猴子補丁mongoose.Query
類添加默認選項瘦:
var __setOptions = mongoose.Query.prototype.setOptions;
mongoose.Query.prototype.setOptions = function(options, overwrite) {
__setOptions.apply(this, arguments);
if (this.options.lean == null) this.options.lean = true;
return this;
};
貓鼬,每次查詢產生的mongoose.Query
新實例,並setOptions
呼叫mongoose.Query
建設的一部分。
通過修補mongoose.Query
類,您可以在全局範圍內變爲精益查詢。因此,您無需路徑全部mongoose
方法(find
,findOne
,findById
,findOneAndUpdate
等)。
Mongoose
使用Query
類內部調用類似填充。它通過原來的Query
選項到每個子查詢,所以應該是沒有問題,但要小心這個解決方案。
比我的更好的答案,對你的讚賞! – tomahaug
這不適用於節點6.7.0和貓鼬4.5.8。任何想法爲什麼? –
在貓鼬4.5.8我不得不將「this.options.lean」改爲「this.mongooseOptions.lean」。 –
黑客攻擊,各地可以進行這樣的事:
撥弄Model
的find
方法:
var findOriginal = Model.prototype.find;
Model.prototype.find = function() {
return findOriginal.apply(this, arguments).lean();
}
新
執行查詢的當前方式執行查詢的方式:
Model.find().exec(function (err, docs) {
docs[0] instanceof mongoose.Document // false
});
我已經沒有測試這個代碼,但如果你已經嘗試之前在JavaScript庫覆蓋功能,你會很容易掌握在那裏我得到
除非你想深入瞭解Mongoose的源代碼,否則你當然必須爲每個Model定義執行這個破解:) – tomahaug
- 1. 有沒有一種方法可以在Mongoose中進行投影?
- 2. 有沒有一種方法可以用Savon :: Model設置默認名稱空間?
- 3. 有沒有一種方法可以將網頁轉換爲pdf?
- 4. 有沒有一種方法可以將fsolve矢量化?
- 5. 有沒有一種可行的DRM方法可以防止錄製最終流?
- 6. Ruby常量有一種方法可以有真正的常量..?
- 7. 有沒有一種方法可以創建沒有默認div容器的ExtJS純按鈕?
- 8. 有沒有更好的方法來處理默認的真?
- 9. 有沒有一種方法可以真正檢測Internet Explorer是PHP還是Javascript
- 10. 是否有一種方法可以始終以管理員身份運行vs.net?
- 11. 有沒有一種方法可以指定在Visual Studio 2008中概述默認值,以便打開一個文件,默認情況下會摺疊成員?
- 12. 有沒有一種方法可以搜索Vim中的有向圖
- 13. 在Visual Studio中有沒有一種方法可以從空ASP.NET ASP.NET應用程序開始配置Web部署的默認啓動頁面?
- 14. Team Foundation Server 2008中有沒有一種方法可以限制哪些用戶可以開始構建?
- 15. 有沒有一種方法可以一次使用Sequelize
- 16. 有沒有一種方法可以在應用程序中始終如一地識別用戶的設備?
- 17. JDBC有沒有一種方法來檢測列是否有默認值?
- 18. 有沒有一種方法可以讓一個按鈕作爲窗體上的默認值?
- 19. 有沒有一種方法來設置默認的一天的strtotime( 「YYYY-MM」)
- 20. 有沒有一種方法,使一個C++編譯器標誌爲默認
- 21. 有沒有一種方法可以傳遞XML,啓動,限制store.load?
- 22. 有沒有一種方法可以內聯斷言/啓用斷言?
- 23. 有沒有一種方法可以減少R中向量所需的內存?
- 24. 有沒有一種方法可以在python中輸入文字?
- 25. Shiro:有沒有一種方法可以在我的項目
- 26. 有沒有一種方法可以完全格式化C#double?
- 27. 有沒有一種方法可以讓我從蟒蛇
- 28. 有沒有一種方法可以運行多個IntentService?
- 29. 有沒有一種方法可以跟蹤API內的廣告?
- 30. 有沒有一種方法可以保存JavaScript DOM操作?
似乎你可以將它應用於模式級別(http://mongoosejs.com/docs/guide.html#options),所以我懷疑你可以在連接級別上執行它:/ – tomahaug
你可能會考慮直接使用mongodb本地驅動程序 - 它總是*精益*。 – WiredPrairie
@WiredPrairie - 需要貓鼬在這個項目上的其他原因,但謝謝。 – k00k