【发布时间】:2016-12-28 17:14:10
【问题描述】:
我正在尝试使用 graphql 获取坐标数组。我正在使用 relay、mongoose 和 graffiti-mongoose 从这些 mongoose 模型生成 graphql 类型:
// Geometry
const GeometrySchema = new mongoose.Schema({
type: { type: String },
coordinates: [ Number ]
}, { _id: false } );
// Country
const CountrySchema = new mongoose.Schema({
code: String,
name: String,
dictionary: [ { _id: false, value: String } ],
language: [ { _id: false, code: String, name: String } ],
loc: { type: { type: String }, geometries: [ GeometrySchema ] },
creationDate: Date,
modifiedDate: Date
});
const Country = mongoose.model('Country', CountrySchema);
这是生成的graphql(graphql/utilities):
type Country implements Node {
code: String
name: String
dictionary: [CountryDictionary]
language: [CountryLanguage]
loc: [CountryLoc]
creationDate: Date
modifiedDate: Date
_id: ID
id: ID!
}
type CountryConnection {
pageInfo: PageInfo!
edges: [CountryEdge]
count: Float
}
type CountryDictionary {
_id: Generic
value: String
}
input CountryDictionaryInput {
_id: Generic
value: String
}
type CountryEdge {
node: Country
cursor: String!
}
type CountryLanguage {
_id: Generic
code: String
name: String
}
input CountryLanguageInput {
_id: Generic
code: String
name: String
}
type CountryLoc {
type: String
coordinates: [Float]
}
input CountryLocInput {
type: String
coordinates: [Float]
}
使用 graphiql 我可以通过以下方式获取国家/地区名称:
{
country(id:"57b48b73f6d183802aa06fe8"){
name
}
}
我如何检索 loc 信息?
【问题讨论】:
-
你试过
{ country(id:"57b48b73f6d183802aa06fe8"){ name loc { coordinates } } }吗? -
是的,我试试,我得到了这样的响应:{ "statusCode": 400, "error": "Bad Request", "message": "Expected Iterable, but didn't find one for field Country.洛克。” }
-
这意味着,问题与服务器端实现有关。检查您是否在服务器端正确返回坐标数组。
标签: mongodb mongoose graphql relay