Я использую Apollo Graphql, Express-Nodejs, MongoDB и Mongoose.У меня есть 2 коллекции, а именно: Бизнес и заказ.
Вот модели
![enter image description here](https://i.stack.imgur.com/d9fkO.png)
Вот типы графиков:
Вот мутация:
createBusiness(
name: String,
address: String,
): Business
createOrder(
orderNumber: String,
businessName: String,
additionalDetails: String
): Order
У определенного бизнеса может быть несколько заказов, у конкретного заказа должен быть один конкретный бизнес.
ЧтоЯ хочу сделать, это создать заказ для бизнес-документа.
Случай 1.) Если бизнес-документ не существует: , тогда мутация createOrder должна создать новый бизнес-документ (с помощью заполнения)
Случай 2.) Но если бизнес-документ существует , то мутация createOrder не должна создавать новый бизнес-документ, а только добавлять новый заказ и ссылку на существующий бизнес-документ.
Может кто-нибудь, пожалуйста, дайте мнезнаете, как я могу выполнить вышеизложенное в graphql и mongoose? Любое предложение будет полезно!
Вот мой распознаватель мутаций Order (не работает, не знаю почему !!)
import Order from '../models/Order';
import Business from '../models/Business';
export default {
Mutation:{
createOrder(_, {
orderNumber,
additionalDetails,
businessName
}){
return Business.findOne({
businessName: businessName
})
.then((exist)=>{
if (!exist){
let business_Name = new Business({
name: businessName
})
business_Name.save(function (err){
if (err) return handleError(err);
let order = new Order({
orderNumber: orderNumber,
businessName: business_Name._id,
additionalDetails: additionalDetails
});
order.save(function (err){
if (err) return handleError(err);
});
});
}
if (exist){
// WHAT SHOULD I DO FOR THIS CASE ??
}
});
},
}
}
Заранее спасибо!