Как заполнить только содержание геттера - PullRequest
0 голосов
/ 27 марта 2019

У меня есть проблема в проекте mongoose. Я пытаюсь заполнить и использовать геттер, но не все данные Но теперь все виртуалы появляются в документе. Я использую mongoose.Schema и mongoose.Model

Вот пример моего тестового кода

const GroupsSchema = schema({
    title: String,
    users: [{
        type: schema.Types.ObjectId,
        ref: 'Users'
    }]
});

const UsersSchema = schema({
    name: String,
    avatar: String
}, {
    toJSON: {
        virtuals: true
    }
});

class Users extends Model {
    get name() {
        return {
           name: this.name
        };
    }
    get avatar() {
        return {
           avatar: this.avatar
        };
    }
}

Заполнение документа

const groups = await Groups.find({}).populate('users').exec();

Мой текущий результат:

[
  {
    "_id": "5c9bb51626924f0a08aa8c3d",
    "title": "GroupName" 
    "users": [
      {
        "_id": "5c8e37169fc1f9000f8c333b",
        "name": "Jack",
        "avatar": "avatar.jpg",
        "name": {
           "name": "Jack",
        },
        "avatar": {
           "avatar": "avatar.jpg"
       }
     }
   ]
  }
]

Как заполнить документ содержимым только name getter?

Желаемый результат:

[
  {
    "_id": "5c9bb51626924f0a08aa8c3d",
    "title": "GroupName"   
    "users": [
      {
        "name": "Jack"
      }
    ]
  }
]
...