我是graphql世界的新手,所以这可能是一个非常简单的问题,抱歉
我正在使用图形ql-compose-mongoose生成我的图形ql模式,这是我的猫鼬模式:
const ComplainSchema = new Schema({
entityId: {type: String, required: true},
user: {type: UserInfoSchema, required: true},
title: String, // standard types
desc: String,
state: {required: true, type: String, enum: ["DRAFT", "MODERATION", "PUBLIC", "SOLVED"]},
attachments: [{
url: {type: String, required: true},
name: String,
mimeType: String,
attachmentId: Schema.Types.ObjectId
}],
createdAt: {type: Date, index: true},
updatedAt: {type: Date, index: true},
}, {timestamps: {}})
export default mongoose.model('Complaint', ComplainSchema)
如果我尝试以下突变,它的工作正常
mutation {
complaintUpdateById(record:{_id:"5bdd9350fe144227042e6a20", title:"ok", desc:"updated", attachments:[{name:"zied", url:"http://zied.com"}]}){
recordId,
record{
_id,
entityId,
user {
userId,
userName,
roleInShop
},
title,
desc,
createdAt,
updatedAt,
attachments{
name,
url
}
}
}
}
并返回此内容(以防查看响应可能会有所帮助)
{
"data": {
"complaintUpdateById": {
"recordId": "5bdd9350fe144227042e6a20",
"record": {
"_id": "5bdd9350fe144227042e6a20",
"entityId": "5bd9b1858788f51f44ab678a",
"user": {
"userId": "5bd9ac078788f51f44ab6785",
"userName": "Zied Hamdi",
"roleInShop": "ASA"
},
"title": "ok",
"desc": "updated",
"createdAt": "2018-11-03T12:23:44.565Z",
"updatedAt": "2018-11-05T09:02:51.494Z",
"attachments": [
{
"name": "zied",
"url": "http://zied.com"
}
]
}
}
}
}
现在,如果我尝试将附件传递给apollo,我不知道该怎么做,我不知道该提供哪种类型(附件不是正确的类型):
const UPDATE_COMPLAINT = gql `mutation complaintUpdateById($_id:MongoID!, $title: String!, $desc: String!, $attachments: [Attachment]
)
{
complaintUpdateById(record:{_id:$_id, title:$title, desc:$desc, attachments:$attachments}){
recordId,
record{
_id,
entityId,
user {
userId,
userName,
roleInShop
},
title,
desc,
createdAt,
updatedAt
}
}
}`
因此,搜索正确的类型,我对我的对象进行了内省,问题是我在此查询中将附件类型设置为 null:
{
__type(name: "Complaint") {
kind
name
fields {
name
description
type {
name
}
}
}
}
这是回应:
{
"data": {
"__type": {
"kind": "OBJECT",
"name": "Complaint",
"fields": [
{
"name": "entityId",
"description": null,
"type": {
"name": "String"
}
},
{
"name": "user",
"description": null,
"type": {
"name": "ComplaintUser"
}
},
{
"name": "title",
"description": null,
"type": {
"name": "String"
}
},
{
"name": "desc",
"description": null,
"type": {
"name": "String"
}
},
{
"name": "state",
"description": null,
"type": {
"name": "EnumComplaintState"
}
},
{
"name": "attachments",
"description": null,
"type": {
"name": null
}
},
{
"name": "createdAt",
"description": null,
"type": {
"name": "Date"
}
},
{
"name": "updatedAt",
"description": null,
"type": {
"name": "Date"
}
},
{
"name": "_id",
"description": null,
"type": {
"name": null
}
}
]
}
}
}
谷歌搜索没有帮助,因为我不知道这个操作是如何被称为,我不认为这是一个嵌套的变异,从我发现的...
好的修好了,
我做了以下步骤:
我首先使用__typename关键字在常规查询中检查附件的类型,如下所示
mutation {
complaintUpdateById(record:{_id:"5bdd9350fe144227042e6a20", title:"ok", desc:"updated", attachments:[{name:"zied", url:"http://zied.com"}]}){
recordId,
record{
_id,
entityId,
user {
userId,
userName,
roleInShop
},
title,
desc,
createdAt,
updatedAt,
attachments{
__typename,
name,
url
}
}
}
}
它显示了一个名为ComplaintAttachments的类型
将附件类型替换为此新值“投诉附件”时,发生了错误,该错误消息帮助了我:
“[ComplaintAttachments]”类型的变量“$attachments”用于需要类型“[CompaintComplaintATTachmentsInput]”的位置
所以数组的类型是ComplaintComplaintAttachmentsInput,我仍然不知道如何直接内省它,但我已经对结果感到满意了:)
问题内容: 我想创建一个通用函数来根据传递的属性对类数组进行排序。 例如,我有这些课程 这些数组 如何为数组编写通用扩展名,以便根据传递的属性对其进行排序?(例如,persons.sort(名称)或cars.sort(制造商)) 谢谢! 问题答案: 干得好: 用法: 这是一个不变的版本: 正如Leo Dabus指出的那样,您可以将扩展名概括为以下内容:
问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排
问题内容: 我已经使用AJAX获得了以下对象并将它们存储在数组中: 如何仅使用JavaScript 创建一个函数以按属性 升序 或 降序 对对象进行排序? 问题答案: 按价格升序对房屋进行排序: 或在ES6版本之后:
问题内容: 我需要通过对象属性之一的一个属性比较对象数组。 我在做 : 它没有编译,有人知道怎么做吗? 谢谢。 问题答案: 这是代码中导致错误的部分 您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。对任何类型的对象的方法的引用如下所示: 但是方法引用不是对象,并且没有成员可以访问。使用此代码,您尝试访问引用的成员变量(并且不能) 另外,方法引用不是类,因此您不能从它们中获取另一个方法引
我有一个像 我有一个用户对象列表,比如:示例数据 我的问题是,如何将此列表分组以了解品牌id出现在哪些对象中,例如品牌id=10出现在所有三个对象中,品牌id=30仅出现在一个对象中 带有 key=brand id 和 value = count 的地图的结果将解决我的问题,如下所示:{10:3},{20:1},{30,1},{50,1},{80,1 }
我在GraphQL Playground中有一个可以工作的查询,我正试图使用Apollo使其工作。我似乎无法将变量正确地传递给查询。 这是我的代码: [GraphQL错误]:消息:变量“$ConversationID”获得无效值“CJRTFAGWC00BQ0A300NJZ594R”;类型ConversationWhereUniqueInput应为对象。,位置:[object object],路径: