Mongoose Заполнение объекта вложенными массивами объектов - PullRequest
0 голосов
/ 22 сентября 2019

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

Я пробовал простой populate () и несколько решений, которые я нашел в StackOverflow.С одним я приведу ниже.

Мой маршрут

router.get('/users/:user/notifications', (req, res) => {
  User.findById(req.user._id)
    .populate({
      path: 'notifications',
      populate: {
        path: 'userFollowedNot',
        model: 'User',
      },
    })
    .populate({
      path: 'notifications',
      populate: {
        path: 'newShortsNot',
        model: 'Shortcut',
      },
    })
    .exec()
    .then((user) => {
      res.render('notifications', { user, csrfToken: req.csrfToken() })
    })
});

Моя модель

const UserSchema = new mongoose.Schema({
  username: {
    type: String,
    lowercase: true,
    unique: true,
    required: true,
  },
  password: {
    type: String,
  },
  showNsfw: {
    type: Boolean,
    default: true,
  },
  timezone: {
    type: String,
    default: 'CEST',
  },
  notifications: {
    userFollowedNot: [{
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User',
    }],
    newShortsNot: [{
      type: String,
      ref: 'Shortcut',
    }],
  },
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...