Mongoose 是一个用于 Node.js 的 MongoDB 对象建模工具,它提供了一种直接的方式来在 Node.js 应用程序中使用 MongoDB 数据库。.lean()
方法是 Mongoose 中的一个查询方法,它返回一个纯 JavaScript 对象而不是 Mongoose 文档对象。这意味着返回的对象不会有 Mongoose 的额外功能,如变更跟踪、验证或中间件。
在使用 .lean()
方法时,如果你进行相等性测试(例如使用 ===
或 Object.is()
),可能会发现测试失败。这是因为 .lean()
返回的是普通的 JavaScript 对象,而不是 Mongoose 文档对象。普通对象在 JavaScript 中是基于引用的相等性测试,即使两个对象具有相同的属性和值,它们也被认为是不相等的,因为它们在内存中的位置不同。
如果你需要进行相等性测试,可以考虑以下几种解决方法:
lodash
的 isEqual
方法来进行深度比较,这样可以比较对象的所有属性和值。lodash
的 isEqual
方法来进行深度比较,这样可以比较对象的所有属性和值。.lean()
方法通常用于以下场景:
.lean()
可以提高查询性能。通过以上方法,你可以有效地解决在使用 Mongoose .lean()
方法时遇到的相等性测试失败问题。
领取专属 10元无门槛券
手把手带您无忧上云