Я использую graphql с экспрессом и мангустом. по некоторым причинам я получаю значение null для встроенных документов. пробовал как async / await, так и обещать.
Schema.JS
const typeDefs = `
type Patient{
name:String
}
type Order {
_id: ID!
orderName: String!
orderDate: Int,
patient:Patient
}
type Query {
allOrders: [Order]
}
`;
module.exports.schema = makeExecutableSchema({
typeDefs,
resolvers
});
resolver.JS
module.exports.resolvers = {
Query: {
async allOrders() {
return await db.cpoeDataModel.CpoeOrder.find();
}
},
Order: {
patient: async (order) => {
console.info("patient Id##", order.patientId);
return await db.domainModel.Patient.findById(order.patientId);
}
}
};
запрос:
{
allOrders {
orderName,
patient {
name
}
}
}
результат:
{
"allOrders": [
{
"orderName": "order1",
"patient": null
},
{
"orderName": "order2",
"patient": null
}]
}
ожидаемый результат
{
"allOrders": [
{
"orderName": "order1",
"patient": {
"name":"xyz"
}
},
{
"orderName": "order2",
"patient": {
"name":"xyz"
}
}]
}





проблема была с моим сбором заказов, а не с кодом. были ссылки на идентификаторы пациентов, которых больше не существует. вот почему получение приемлемых нулевых значений. Я был сбит с толку, потому что он на вершине результатов.