node.js - Mongoose:有没有办法将 lean 默认设置为 true(始终打开)?

标签 node.js mongoose

我有一个只读 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 方法(findfindOnefindByIdfindOneAndUpdate 等)。

Mongoose 使用 Query 类进行填充等内部调用。它将原始的 Query 选项传递给每个子查询,因此应该没有问题,但无论如何都要小心这个解决方案。

关于node.js - Mongoose:有没有办法将 lean 默认设置为 true(始终打开)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183886/

相关文章:

javascript - Mongoose 3.8 中的 ObjectId 数组

node.js - PM2集群模式只启动一个实例

javascript - 如何处理 Node.js expressjs 中异步对象方法中未处理的 promise 拒绝?

javascript - Express 是否要求我使用 POST 路由进行删除?

javascript - NodeJS - 从其他文件导入函数并像以前一样使用它们?

node.js - 在 Mongoose 中如何声明动态 Schema

javascript - 数组内的数组

javascript - Mongoose 独特的不工作

node.js - Mongoose 对回调的存在有不同的 react

node.js - 在用户注销后,如何防止浏览器的后退按钮访问受限信息?