【问题标题】:Mongoose new Schema post sub array with ng-select带有 ng-select 的 Mongoose 新 Schema post 子数组
【发布时间】:2019-03-12 07:47:39
【问题描述】:

我有这个架构:

    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"

],

【问题讨论】:

    标签: node.js angular mongodb mongoose angular-ngselect


    【解决方案1】:

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

    const skillSchema = new Schema({
        name: String,
        label: String
    });
    const userSchema = new Schema({
        email: String,
        skill: skillSchema
    });
    

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 2019-03-27
      • 2018-02-02
      • 2017-10-17
      • 2022-01-07
      • 1970-01-01
      • 2017-05-06
      • 2014-07-11
      相关资源
      最近更新 更多