Заполнить () указать несколько моделей - PullRequest
0 голосов
/ 13 июня 2018

Я хочу сделать populate() для запроса find(), но указав несколько моделей, поэтому, если в первой указанной модели не будет найдено вхождение, совокупность возникнет во второй.

Вот пример того, что я хотел бы сделать:

const userSch = new Schema({
    username: {
      type: String,
      required: true,
    },
    password: {
      type: String,
      required: true,
    },
    mail: {
      type: String,
      required: true,
      unique: true,
    }
});

const botSch = new Schema({
    username: {
      type: String,
      required: true,
    },
    token: {
      type: String,
      required: true,
      unique: true,
    },
    owner: mongoose.Schema.Types.ObjectId
 });

const nspSch = new Schema({
  name: String,
  channels: [channels],
  users: [{
    id: {
      type: mongoose.Schema.Types.ObjectId,
    },
    bot: {
      type: Boolean,
    }
  }],
});

const channels = new Schema({
    name: String,
    message: [{
        user: {
          type: Schema.Types.ObjectId,
        },
        content: String,
    }],
});

const nsp = mongoose.model('namespace', nspSch);
const Auth = mongoose.model('users', userSch);
const BotAuth = mongoose.model('bots', botSch);

function returnMs(nspID, channelID, callback) {
  nsp.findOne({'_id': nspID}).populate({
    path: 'channels.message.user',
    model: 'users' || 'bots',
    select: '_id username',
  })
  .exec(function(err, r) {
    ...
  })
}

Если когда-либо будет пакет npm, или решение или даже трек для его кодирования, пожалуйста, поделитесь им.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...