lean() больше не работает при переходе от stream () к cursor()
Что касается предупреждения об устаревании, добавленного здесь, кажется, что cursor()
является падающей заменой для stream()
, однако есть некоторая функциональность, которая, кажется, осталась позади.
Например, этот устаревший код будет иметь "бережливые" документы, которые являютсяне экземплярами mongoose.Document
:
Cat
.find({ }).lean()
.stream()
.on('data', function (data) {
var value = data instanceof mongoose.Document;
console.log('lean().stream() data instanceof mongoose.Document', value);
})
.on('end', function () { });
И этот код будет иметь документы мангуста, даже если lean()
используется:
Cat
.find({ }).lean()
.cursor()
.on('data', function (data) {
var value = data instanceof mongoose.Document;
console.log('lean().cursor() data instanceof mongoose.Document', value);
})
.on('end', function () {});
Что является супер странным, так как их исходный код в момент это изменение выглядит идентично:
Есть ли правильный способ достичь этого с помощью cursor()
или я нашел ошибку? Заранее спасибо;)
1 ответ:
Я нашел после исследования (и благодаря комментарию JohnnyHK), похоже, что он не был реализован в
cursor()
, поэтому я сделал запрос pull, чтобы исправить эту проблему https://github.com/Automattic/mongoose/pull/4255