📅  最后修改于: 2023-12-03 14:51:29.511000             🧑  作者: Mango
在使用Mongoose进行MongoDB操作时,有时候我们需要在查询结果中返回普通对象而不是Mongoose文档对象。这可以通过使用Mongoose的lean()
方法来实现。
lean()
方法lean()
是Mongoose的方法,它允许从MongoDB中查询数据并返回普通JavaScript 对象。它消除了查询结果中的大部分Mongoose元数据,从而提高了查询性能。
User.find().lean().exec(function (err, docs) {
// `docs` is a plain JavaScript object
});
上面的代码返回的是一个普通JavaScript对象,而不是Mongoose文档对象。lean()
方法在查询速度和内存消耗方面也比Mongoose文档对象更有效率。
由于lean()
方法将结果转换为普通JavaScript对象,它会导致以下限制:
populate()
不能用于查询结果,因为无法将普通对象传递给其它查询。save()
方法,在此情况下,应该使用MongoDB的updateOne()
或updateMany()
方法。当您想在查询结果中返回普通对象,并且可以接受一些限制时,lean()
是非常有用的。 但是,请注意,如果您需要在查询结果上执行Mongoose实例方法或使用populate()
,则不能使用此方法。