首页 > 解决方案 > Graphql:“消息”:“ID不能代表值:5a72240cf31713598588b70f”

问题描述

moongose用于mongodb基于nodejs应用程序的工作。目前,我尝试实现Grapqhl基于 API。

我的查询graphql架构如下所示:

const schema = buildSchema(`                                                 
    type Query {                                                            
      predictionModels(active: Boolean): [PredictionModel]
    },                                                                                   
    type PredictionModel {                                                                                                 
        _id: ID                                                                                                             
        title: String
        active: Boolean                                                                                                
    }                                                                                                      
`)  

但是当我使用时:

query {
  predictionModels(active: true){
    _id
  }
}

作为我得到的回应:

"errors": [
    {
      "message": "ID cannot represent value: 5a72240cf31713598588b70f",
      "locations": [
        {
          "line": 3,
          "column": 5
        }
      ],
      "path": [
        "predictionModels",
        0,
        "_id"
      ]
    } ....

预测模型猫鼬模式:

const predictionModelSchema = new Schema({                                                                              
    title: { type: String, require: true, unique: true },                                                               
    modelId: { type: String, require: true, unique: true },                                                             
    description: { type: String, unique: true },                                                                        
    language: {type: String, enum: [ProgrammingLanguage.JS, ProgrammingLanguage.R], require: true},                     
    estimates: [{ type : Schema.Types.ObjectId, ref: 'PredictionModelEstimate'}],                                                                                             
    method: { type: methodType, require: true},                                                                         
    active: { type: Boolean, require: true}                                                                             
})

标签: mongodbmongoosegraphql

解决方案


如果这是类型问题,您可以使用:

var ObjectId = require('mongoose').Types.ObjectId;
_id: new ObjectId(ID)

推荐阅读