В текущей версии Мангуста я до сих пор не видим, что multi ref возможно с синтаксисом, как вы хотите. Но вы можете использовать часть метода «Начисление через базы данных», описанного here. Нам просто нужно двигаться логика населения явно вариант метода населения:
var PeopleSchema = new Schema({
peopleType:{
//Just ObjectId here, without ref
type: mongoose.Schema.Types.ObjectId, required: true,
},
modelNameOfThePeopleType:{
type: mongoose.Schema.Types.String, required: true
}
})
//And after that
var People = mongoose.model('People', PeopleSchema);
People.findById(_id)
.then(function(person) {
return person.populate({ path: 'peopleType',
model: person.modelNameOfThePeopleType });
})
.then(populatedPerson) {
//Here peopleType populated
}
...
Это не имеет никакого смысла, как бы Mongoose знал, какую модель ссылаться на данный документ? Можете ли вы предоставить более подробную информацию о том, что вы пытаетесь сделать? – JohnnyHK
Thanks.OK, например, у меня есть два типа товаров, модель AGoods и модель BGoods. И у меня также есть модель товара, чтобы сохранить все из них (только сохранить ref). Так что, когда я нахожу хорошее, я буду искать в Модель товаров, а затем, если найдет, она заполнит реальную хорошую информацию от AGoods или BGoods. –
Вы нашли способ сделать это? – timhc22