Mongoose: Как использовать populate () с GLOBAL.schemas []? - PullRequest
0 голосов
/ 25 июня 2019

Я не могу (не могу найти способ заполнить "formateur _id" "формацией" с помощью этой конфигурации GLOBAL.schemas?

{
"Formations": {
        "collection": "formations",
        "schema": {
            "_id": "ObjectId",
            "libelle": "String",
            "duree": "String",
            "plan_cours": "String",
            "prix": "String",
            "formateur": {
                "type": "ObjectId",
                "ref": "Formateurs"
            }
        }
    },
    "Formateurs": {
        "collection": "formateurs",
        "schema": {
            "_id": "ObjectId",
            "nom": "String",
            "prenom": "String",
            "statut": "String",
            "prix_jour": "String"
        }
    },
(...)

Вот часть файла маршрута:

GLOBAL.schemas[global.actions_json[type + path].modelName].
      findOne({ _id: new ObjectId(req.params._id) },
        function (err, result) {

          if (err) {
            throw err;
          }

          console.log('formationForm: ', result);
          //populate('Formateurs');
          res.render(global.actions_json[type + path].view, {
            title: "Modifier une formation",
            libelle: "modification",
            form_action: "/formationModify",
            formateur: 'formateur._id',
            formation: result._doc // il n'y a qu'une réponse possible puisque requête via _id formations
          })
          .populate('formateur');
        });

в этой форме выберите, я ожидаю, что список формирователей в формировании

<select name="formateurs" id="formateur">
            {{#compare formation.formateur null operator="=="}}
                <option value="rien">Il n'y a pas de formateurs</option>
                {{else}}
                 <option value="0">Sélectionner un formateur</option>
                {{#each formation.formateur}}
                 <option value="{{formateur._id}}">{{formateur.nom}} {{formateur.prenom}} - {{formateur.statut}}</option>
                {{/each}}
              {{/compare}}
        </select>

У меня ошибка TypeError: Невозможно прочитать свойство 'populate' из неопределенного ...

...