Feathersjs-Мангуст заполняет данные

#node.js #mongoose #feathersjs

#node.js #мангуст #feathersjs

Вопрос:

При использовании метода find, как можно заполнить данные из другой коллекции. Операция объединения, которую мы выполняем с базами данных sql. Прямо сейчас я использую что-то вроде: code:

 async find(data, params) {
    let records = await super.find(data, params);
    let newrecords = records.data.map(async (user) => {
      let professordetails = await this.app
        .service("users")
        .get(user.professorId);
      professordetails.password = undefined;
      user.professorId = professordetails;
      return user;
    });
    return await Promise.all(newrecords).then((completed) => {
      return completed;
    });
  }
  

Это служба курса и ее модель :

 module.exports = function (app) {
  const modelName = "courses";
  const mongooseClient = app.get("mongooseClient");
  const { Schema } = mongooseClient;
  const { ObjectId } = Schema;
  const schema = new Schema(
    {
      name: { type: String, required: true },
      details: { type: String, required: true },
      professorId: { type: ObjectId, ref: "users", required: true },
      enrolledStudents: [{ type: ObjectId, ref: "users" }],
    },
    {
      timestamps: true,
    }
  );
  // This is necessary to avoid model compilation errors in watch mode
  // see https://mongoosejs.com/docs/api/connection.html#connection_Connection-deleteModel
  if (mongooseClient.modelNames().includes(modelName)) {
    mongooseClient.deleteModel(modelName);
  }
  return mongooseClient.model(modelName, schema);
};
  

Это что-то вроде нежелательной операции, поскольку мы заполняем. Но я не мог этого сделать с помощью populate.

Комментарии:

1. Я думаю, это может быть проблема с тем, как вы создаете записи данных. Не могли бы вы показать мне, как вы создаете записи? Может быть, мы могли бы выяснить, что не так.

2. Для создания данных я использую стандартные маршруты feathersjs serivice. И я ничего не трогаю в методе create. Просто передаю идентификатор препроцессора, и я указал ссылку на идентификатор профессора в модели курса. Так вот что здесь происходит!