У меня есть много отдельных схем Mongoose, ссылающихся друг на друга с помощью ObjecId
s.
Исходя из этого, теперь я хочу составить еще один программно.
Я пробовал что-то вроде следующего:
const Offers = require('../offers/offersModel')
const Stores = require('../stores/storesModel')
const flattenedStores = Stores.schema
const flattenedOffers = Offers.schema
// this step is not working as I expected
flattenedOffers.paths.storeId = flattenedStores
const FeedsSchema = new Schema({
offerId: flattenedOffers,
// ...other fields
})
Первоначально, в модели предложений, storeId - это ObjectId, ссылающийся на модель магазинов:
OffersSchema = new Schema({
storeId : {
type: mongoose.Schema.Types.ObjectId,
ref: 'Stores',
required: true
},
// ...other fields
})
module.exports = mongoose.model('Offers', OffersSchema)
Я хотел программно изменить его на схему sub flat flatStores. Но это не сработало. Как это сделать?
Этот пример прост, и я действительно мог бы просто вставить всю схему вручную в FeedsSchema. Однако в моем реальном случае использования существует длинная цепочка схем, каждая из которых содержит много полей, где только одно поле является ссылкой на другую схему.
Я бы предпочел переопределить только эти отдельные ссылки, а не вводить всю структуру вручную в FeedsSchema ... Возможно ли это?