В настоящее время я использую mongoose v. 5.25 против mongoDB v.3.6.
Мое приложение должно запрашивать данные из множества разных представлений, например, из представления, которое сейчас есть в моей БД: db.joboffers_view.find()
вернет много записей, которые были агрегированы из разных коллекций.
Для обычной модели коллекции я запрашиваю ее так:
const model = db.model(attribute);
/*where attribute, can be any registered schema */
model.find().
then((result) => {
resolve(result);
}).
catch((err) => {
reject(err);
});
Тогда я регистрирую свои модели примерно так (упрощенный код):
//...
//abstracting boring connection methods
const db = mongoose.connection
//...
//simple model schema
const users_schema = {
_id: ObjectId,
another_field: String
};
//here I'm registering a schema for a VIEW, instead of normal collection
const view_schema = {
_id: ObjectId,
another_field: String
};
//...
//then
db.model('users', users_schema);
db.model('view', view_schema);
Когда я запускаю запрос из любой из моих зарегистрированных моделей, я получаю отличные результаты. Однако, когда я запускаю его для модели, представляющей представление в моей базе данных mongo, он возвращает пустой массив.
Никаких ошибок, ничего, просто пустой массив.
Я просмотрел документацию мангуста и не нашел никакого конкретного метода или шаблона для запроса представления вместо данных коллекции.
Кажется, это то же самое, что и для любой другой коллекции, которая есть в моей системе.
Я что-то упускаю?