0

我有这个架构:

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

像这样在 HTML 中使用 ng-select:

    <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"

],
4

1 回答 1

0

尝试为您的技能对象创建一个模式,并像这样使用它:

const skillSchema = new Schema({
    name: String,
    label: String
});
const userSchema = new Schema({
    email: String,
    skill: skillSchema
});
于 2018-10-07T14:40:22.973 回答