[英]Nested Mongoose queries data not showing on GraphQL query
我正在嘗試使用帶有 GraphQL 和 Mongoose 的 Apollo 服務器創建 API。 我的問題是對 Mongoose 的查詢確實返回了數據,但是 GraphQL model 顯示為null
時的 Z37A6259CC0C1DAE299A78664
我嘗試了不同的方法並使用了 Promise。
type Articulo {
id: ID
nombre: String
codigoDeBarras: String
codigo: String
}
type EntradaInventario {
id: ID
articulo: Articulo
inventario: Inventario
cantidad: Float
}
type Almacen {
id: ID
nombre: String
}
type Inventario {
id: ID
almacen: Almacen
nombre: String
}
type Query {
articulo(codigoDeBarras: String): Articulo
entradaInventario(inventario: String): [EntradaInventario]
}
type Mutation {
addEntradaInventario(idArticulo: String, idInventario: String, cantidad: Float): EntradaInventario
addAlmacen(nombre: String): Almacen
addInventario(idAlmacen: String, nombre: String): Inventario
}
const EntradaInventarioModel = Mongoose.model("EntradaInventario", {
_id: Schema.Types.ObjectId,
idArticulo: {type: Mongoose.Schema.Types.ObjectId, ref: 'Articulo'},
idInventario: {type: Mongoose.Schema.Types.ObjectId, ref: 'Inventario'},
cantidad: Number
}, "entradainventarios");
Query: {
articulo: (_, args) => ArticuloModel.findOne({
'codigoDeBarras': args.codigoDeBarras
}).exec(),
entradaInventario: (_, args) =>
EntradaInventarioModel.find({idInventario: args.inventario})
.populate('idArticulo')
.exec(),
}
您不應在父 model 上使用填充。 相反,您應該定義如何在 EntradaInventario 解析器中查詢嵌套的 model。
庫存應如下所示:
Inventory : {
articulo: async (parent, args, { }) => {
return await Articulo.findOne({
_id: parent.idArticulo,
});
},
}
這是一個可以做到這一點的倉庫,它是一個很好的例子https://github.com/the-road-to-graphql/fullstack-apollo-express-mongodb-boilerplate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.