Помощники запросов не работают должным образом, когда вы используете агрегирующие методы, такие как .aggregate себя, .lookup или .match и т. Д. В отличие от обычных методов, таких как .where, .find, .limit и т. Д.
Например, это работает:
Model.aggregate().match(...).lookup(...).exec(function(err, item) { .. };
Но это не так ...
userSchema.query.findUser = function(id) {
return this.match({'_id': id});
}
userSchema.query.getPosts = function(id) {
return this.lookup({'from': 'posts', 'localField': 'posts', 'foreignField': '_id', 'as': 'intents' });
}
....
User.aggregate().findUser(id).getPosts().exec(function(err, item) { ... };
Разве это не должно работать?Или есть какой-то другой способ сделать помощники запросов с агрегатными методами.Я знаю, что могу использовать .populate в этом случае, но я просто написал простое агрегирование для демонстрационных целей.Я делаю что-то более сложное в своем приложении, и было бы полезно использовать такой подход.