У нас есть отношения «многие-ко-многим» в Mongoose. Объект поддерживается для повторения всех объектов, которые он ссылается перед сохранением. Мы пытаемся использовать lodash, чтобы генерировать функции правильного контекста, но все мы получаем массив null
mongoose & lodash: __.map возвращает массив нулей
Вот код:
PartnerSchema.pre("save", function(done) {
var updaters = __.map(this.partner, function(partner) { // this.partner is an array of ObjectIds
// this runs, and the argument is fine
var update = function updateThing(cb) {
Company.findOne({_id: partner}, function(err, company) {
if (err) return cb(err);
company.partners = __.map(company.partners, function(partner) {
if (partner._id === this._id) {
return this;
}
else {
return partner;
}
})
company.save(function(err, rowsAffected) {
cb(err);
})
})
}
console.log(update); // [Function]
return update;
})
// updaters is now [null, null]
async.parrallel(updaters, function() {
done();
})
})
EDIT: мы выяснили, почему не излучаются никакой ошибки. Mongoose ate them all!. Переход до 4.0.8 показывает, по крайней мере, ошибку. Undefined не является функцией, как и ожидалось.