回答
最简单的方法就是猴子补丁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