Пн goose ограничить возвращаемые данные для модели - PullRequest
2 голосов
/ 29 января 2020

У меня самая базовая c Пн goose схема из возможных. Примерно так:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

ConfigSchema = new Schema({
  title: String
});

module.exports = mongoose.model("Config", ConfigSchema);

Если я получу данные (используя функцию find) из этой коллекции, используя эту модель, я получу весь объект.
Вызов:

Config.find(function(err, configs) {
  if (err) res.send(err);
  res.json(configs);
});

Возвращенные данные:

enter image description here

Я думал, что Mon goose будет проверять выбранные данные по модели, чтобы вернуть только те данные, которые соответствуют модель, так что в этом случае только заголовок для элемента. Я знаю, что могу использовать атрибут strict в Mon goose для принудительного применения модели при сохранении, но я ищу способ получения только смоделированных данных.

Есть ли здесь что-то, чего мне не хватает или я просто смотрю на неправильный инструмент для достижения цели sh. Я нашел этот , который, кажется, делает то, что я ищу, но я не собираюсь перезаписывать схему Mon goose просто для того, чтобы принудительно применять ее при получении данных.

1 Ответ

1 голос
/ 29 января 2020

Кажется, что нет ничего встроенного для запросов, но вы можете легко реализовать свое собственное промежуточное программное обеспечение

ConfigSchema.pre('find', function() {
    this.select(Object.keys(ConfigSchema.tree));
});

Это будет генерировать следующий запрос при запуске Config.find :

configs.find({}, { projection: { title: 1, _id: 1, __v: 1, id: 1 } })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...