Получить отличные идентификаторы, а затем вернуть массив объектов - PullRequest
0 голосов
/ 22 марта 2020

Я хочу найти отдельные компании, у которых есть конкретный 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": []
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...