Mongoose - новый под-массив схемы с помощью ng-select

У меня есть эта схема:

    const userSchema = new Schema({
        email: String,
        skills: {
            name: String,
            label: String
        }
    })
    module.exports = mongoose.model('user', userSchema, 'users')

Используя ng-select в HTML, вот так:

    <ng-select [items]="options" bindLabel="label" bindValue="value" 
       [addTag]="addCustomSkill" [multiple]="true" 
       placeholder="Select Skills" [(ngModel)]="registerUserData.skills"
       name="skills">
    </ng-select>

И я хочу опубликовать на mLab, как это:

  registerUser() {
    this._auth.registerUser(this.registerUserData)
      .subscribe(
        res => console.log(res),
        err => console.log(err)
      )
  }

Консоль будет регистрировать электронную почту, но не навыки.

и, конечно же, mLab поставит только электронную почту

Обновить:

Мне удалось заставить его работать, изменив навыки на

skills: Array,

а также:

name="skills[]"

Но он будет публиковать без ключа подмассив, только значение как:

"skills": [
    "JAVA"
],

Я хочу, чтобы это было:

"skills": [
    "name": "JAVA"
    "label": "JAVA"

],

1 ответ

Попробуйте также создать схему для вашего объекта умения и используйте ее следующим образом:

const skillSchema = new Schema({
    name: String,
    label: String
});
const userSchema = new Schema({
    email: String,
    skill: skillSchema
});
Другие вопросы по тегам