Виртуальная схема Мангуста .найдите возвращаемое значение undefined

#node.js #mongoose

Вопрос:

Я пытаюсь заполнить свою виртуальную схему с помощью .find, но возвращаемое значение не определено. Я попытался использовать .findOne, и он работает, но возвращает только одно значение. Результат, который я хочу, — это иметь две схемы postSchema и UserSchema. Я хочу получить аватарфото из схемы пользователей, которая будет использоваться в моем компоненте, который будет отображать список сообщений с именем пользователя, данными, аватарфото, текстом и изображениями, но я заполню его с помощью виртуальной схемы, потому что мне не нужно хранить данные внутри моей схемы сообщений. Имя пользователя будет значением, которое имеют обе схемы.

 Schema
const userSchema = mongoose.Schema(
  {
    email: {
      type: String,
      required: true,
      unique: true,
    },
    fullname: {
      type: String,
      required: true,
    },
    username: {
      type: String,
      required: true,
      unique: true,
    },
    password: {
      type: String,
      required: true,
      minlength: 6,
    },
    avatarPhoto: {
      type: String,
    },
    about: {
      type: String,
    },
  },
  {
    timestamps: true,
  }
);

const postSchema = mongoose.Schema(
  {
    username: {
      type: String,
    },
    title: {
      type: String,
    },
    description: {
      type: String,
    },
    postImageCollection: {
      type: Array,
    },
  },
  {
    timestamps: true,
  }
);

postSchema.virtual('user', {
  ref: 'userModel',
  localField: 'username',
  foreignField: 'username',
  justOne: true,
});

Controller
export const getUserRelatedPost = asyncHandler(async (req, res) => {
  const postData = await postModel
    .find()
    .populate({
      path: 'user',
      select: 'avatarPhoto',
    });
res.json(postData);
  console.log(postData.user.avatarPhoto); // Undefined
});