Я хочу найти отдельные компании, у которых есть конкретный c продукт. Продукты и компании находятся в двух разных коллекциях, и я хочу получить разные идентификаторы компании, затем из этого отдельного списка получить соответствующие документы компании и вернуть их. Я использую mon goose дискриминатор, чтобы тип продукта отличался __t
.
Вот схема продукта
{
companyId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'company',
alias: 'company',
required: true
},
productName: String,
otherFeatures: [featureSchema],
sponsored: { type: String, uppercase: true },
createBy: String
}
и вот схема компании:
{
name: {
type: String,
min: 1,
max: 255,
required: true
},
description: {
type: String
},
imageUrl: {
type: String
},
imageId: {
type: String
},
created: {
type: Date
},
createdBy: {
type: String
}
}, {
timestamps: {
updatedAt: 'updatedAt'
}
})
{
"_id": "5e5dcd32f355eb7c3be6d4f4",
"name": "Green bank",
"description": "This is a good one here",
"imageUrl": null,
"imageId": null,
"created": "2020-03-03T03:21:22.641Z",
"createdBy": "John Brown",
"createdAt": "2020-03-03T03:21:22.645Z",
"updatedAt": "2020-03-03T03:21:22.645Z",
"__v": 0
}
вот образец документа о продукте
{
"__t": "FxRate",
"_id": "5e5dcd60f355eb7c3be6d4f8",
"companyId": "5e5dcd32f355eb7c3be6d4f4",
"imageUrl": null,
"imageId": null,
"currency": "CAD",
"buyRate": 103.25,
"sellRate": 109.12,
"asAtDate": "2019-06-29T05:00:00.000Z",
"sponsored": "Y",
"created": "2020-03-03T03:22:08.100Z",
"updateAt": "2020-03-03T03:22:08.100Z",
"__v": 0,
"otherFeatures": []
}