Возможно иметь несколько разных типов ссылок для одного атрибута в mon goose (mongodb) - PullRequest
0 голосов
/ 04 марта 2020

Я использую mongodb с mon goose. И мне интересно, возможно ли иметь несколько ссылок для атрибута id объекта в схеме.

Я пробовал код внизу, и он не работал.

const Schema = new Schema({
  refrens: {
      type: ObjectId,

      // this did not work
      ref: [
          "Post",
          "Account"
      ],

      required: true
  }
});

Я знаю можно удалить атрибут ref (поле, ключ), и тогда все идентификаторы объекта будут действительными, но я хочу, чтобы действительными были определенные идентификаторы объекта, идентификаторы объекта модели Post и Account.

const Schema = new Schema({
  refrens: {
      // This will allow all different types of object ids to be the value
      type: ObjectId,

      required: true
  }
});

1 Ответ

0 голосов
/ 04 марта 2020

Похоже, refPath - это то, что вам нужно. Вы можете сделать что-то вроде этого:

const Schema = new Schema({
  refrens: {
    type: ObjectId,
    refPath: 'onModel',
    required: true
  },
  onModel: {
    type: String,
    required: true,
    enum: ['Post', 'Account']
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...