graphql мангуст возвращает ноль

Я использую graphql с экспрессом и мангустом. по некоторым причинам я получаю значение null для встроенных документов. пробовал как async/await, так и обещание.

Схема.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
});

преобразователь.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"
                   }
                  }]
            }

person Riyaj Shaikh Rajjak    schedule 03.10.2018    source источник


Ответы (1)


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

person Riyaj Shaikh Rajjak    schedule 03.10.2018