Заполните вложенную схему Mongoose - PullRequest
0 голосов
/ 01 июля 2018

У меня есть эта модель пользователя:

  const userSchema = new Schema({
      _id: {
        type: Schema.Types.ObjectId,
        required: true
      },
      name: {
        type: String,
        required: true
      },
      email: {
        type: String,
        unique: true,
        required: true
      },
      notification: {
        experiment_id: {
          type: Schema.Types.ObjectId,
          ref: "Experiment",
          required: false
        },
        seen: {
          type: Boolean,
          required: true,
          default: false
        }
      }
    });

А это модель эксперимента:

const experimentSchema = new Schema(
  {
    _id: {
      type: Schema.Types.ObjectId,
      required: true
    },
    name: {
      type: String,
      required: true
    },
    description: {
      type: String,
      required: true,
      default: "No Description"
    },
    author_id: {
      type: Schema.Types.ObjectId,
      ref: "User",
      required: true
    }
);

Я пытаюсь заполнить от Пользователя эксперимент_ид в уведомлении. И из этого списка я хотел бы также заполнить author_id. Я видел некоторый код, как я сделал ниже, но мне не удалось.

Я пытаюсь это:

User.find(
  {
    _id: req.params.currentUserId
  },
  "notification"
)
  .populate({ path: "experiment_id", populate: { path: "author_id" } })
  .exec((err, notif) => {

  }); 

1 Ответ

0 голосов
/ 01 июля 2018

Я исправил это, добавив messages.experiment_id в путь

User.find(
  {
    _id: req.params.currentUserId
  },
  "notification"
)
  .populate({ path: "notification.experiment_id", populate: { path: "author_id" } })
  .exec((err, notif) => {

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