Я создаю RESTful API, используя expressjs и Monk.Есть требование, чтобы я брал несколько документов из разных коллекций (один-ко-многим).Но я не уверен, как это реализовать.
Например, мне нужно взять информацию об одном автомобиле из коллекции Cars и 4 колеса из коллекции Wheels.Я знаю, что должен использовать findOne (), чтобы найти машину, и оттуда я могу получить доступ к типу колес.
Код будет выглядеть примерно так:
var wheelType;
cars.findOne({_id: "C300"}).then((car) => {
wheelType = car["wheeltype"];
})
Вот в чем смысл,Теперь у меня есть информация об автомобиле, но я не могу определить переменную вне области видимости, чтобы сохранить значение, и запустить новую функцию find () для сбора информации о колесах.
Конечно, я могу попробоватьсделать все в .then () так же, как это
cars.findOne({_id: "C300"}).then((car) => {
wheels.findOne({type: car["wheeltype"][0] }).then((wheel) => {
// combind the car with wheel
})
})
, но что, если у меня будет больше деталей для сбора?я просто вкладываю функцию findOne ()?
Возможно, я неправильно подгоняю идею MySQL к MongoDB (есть какой-то другой способ реализации отображения один-ко-многим?).Я ожидаю что-то вроде этого:
коллекционные автомобили у нас
{
{
name:"c300",
wheeltype:["A","B","C"]
}
{
name:"R100",
wheeltype:["E","F","C"]
}
}
коллекционные колеса у нас есть
{
{
type:"A",
Brand:"BestWheel"
}
{
type:"C",
Brand:"GoodWheel"
}
}
и после манипуляции у меня это выводится
{
name:"c300",
wheel:{
Brand:"BestWheel",
type:"A"
}
}