簡體   English   中英

嵌套 ZCCADCDEDB567ABAE643E15DCF0974E503Z 查詢數據未顯示在 GraphQL 查詢中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM