我有一个只读 API,我希望 Mongoose 始终拥有 lean queries为了。
我能否在模式或连接级别启用此默认设置?
最佳答案
最简单的方法是猴子修补 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 为每个查询创建新的 mongoose.Query
实例,setOptions
调用是 mongoose.Query
构造的一部分。
通过修补 mongoose.Query
类,您将能够在全局范围内启用精益查询。所以你不需要路径所有 mongoose
方法(find
、findOne
、findById
、findOneAndUpdate
等)。
Mongoose
使用 Query
类进行填充等内部调用。它将原始的 Query
选项传递给每个子查询,因此应该没有问题,但无论如何都要小心这个解决方案。
关于node.js - Mongoose:有没有办法将 lean 默认设置为 true(始终打开)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183886/