我正在将graphql与express和mongoose一起使用。由于某些原因,我在嵌入式文档中获得了null
的价值。尝试了异步/等待和承诺。
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.log("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"
}
}]
}
答案 0 :(得分:0)
问题出在我的订单托收而不是代码上。有一些患者ID不再存在的参考。这就是为什么获取可接受的空值的原因。只是让我感到困惑,因为它位于结果的顶部。