Как запросить несколько коллекций MongoDB и NodeJS? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть три коллекции в MongoDB.

В Drug JSON, используя MEDID, получаем соответствующие CMID из Composition JSON. Используя эти CMID, получают соответствующие химические названия из Chemicals JSON, а затем сохраняют в одном массиве их medid, cmid и name.

Я использую NodeJS. Пожалуйста, помогите мне, спасибо заранее.

Коллекция НАРКОТИКОВ

{ 
   "MEDID":"AAA001-01",
   "BRANDNAME":"TASULIN D",
   "MEDTYPECODE":"CAP",
   "DOSE":"",
   "DOSEUNIT":"",
   "CHEMICAL1":"TAMSULSIN HYDROCHLORIDE",
   "CHEMICAL2":"DUTASTERIDE",
   "CHEMICAL3":"",
   "CHEMICAL4":"",
   "CHEMICAL5":"",
   "CHEMICAL6":"",
   "CHEMICAL7":"",
   "CHEMICAL8":"",
   "CHEMICAL9":"",
   "CHEMICAL10":"",
   "CHEMICAL11":"",
   "SPECIALITY":"GEN",
   "MANUFACTURER":"IPCA",
   "MFTID":"xyz123"
}

Составная коллекция

{"MEDID":"AAA001-01","CMID":"ABC001"},
{"MEDID":"AAA001-01","CMID":"ABC002"}

Химическая коллекция

{"CMID":"ABC001","Name":"TAMSULSIN HYDROCHLORIDE"},
{"CMID":"ABC002","Name":"DUTASTERIDE"},

1 Ответ

0 голосов
/ 08 февраля 2020
db.drug.aggregate([
   {
     $lookup:
       {
         from: "composition",
         localField: "medid",
         foreignField: "medid",
         as: "composition"
       }
  },
    $lookup:
       {
         from: "chemical",
         localField: "composition.cmid",
         foreignField: "cmid",
         as: "chemical"
       }
   },
    $group: {
        _id: "$medid",
        cmid: { $first: "$composition.cmid" },
        name: { $first: "$chemical.name" }
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...