Как сделать помощники запросов с агрегатными методами (.lookup, .match и т. Д.) В Mongoose? - PullRequest
0 голосов
/ 03 января 2019

Помощники запросов не работают должным образом, когда вы используете агрегирующие методы, такие как .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 в этом случае, но я просто написал простое агрегирование для демонстрационных целей.Я делаю что-то более сложное в своем приложении, и было бы полезно использовать такой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...