Open3
mongooseのleanで、クエリを高速化する
leanをつけないで、単にfindなどでmongooseでクエリを書くと、返り値はmongoose documentと呼ばれる、save
などのメソッドが生えたオブジェクトになる。
MongoDBからかえってきたオブジェクトに、こういった便利メソッドを生やすプロセスをhydrartionという。
MyModel.findOne().lean();
などと、クエリの最後にlean
をつけると、このhydrationプロセスをスキップでき、処理が高速になる。返り値は、POJO (plain old javascript object)となる。
- leanを使うべきとき
- クエリの結果をそのまま使用し、Expressのレスポンスなどに送る場合
- クエリの結果を変更しない場合や、custom getterを使用しない場合
- 使うべきでないとき
- クエリの結果を変更する場合
- getterやtransformのような機能に依存する場合