嗨,我正在尝试在我的 https://www.graph.cool/ db 上写入带有突变的数据。我的项目是一个 React Web 应用程序,我使用 Apollo 作为 graphql 客户端和 graphql-tag npm 包作为模板文字解析器。
问题是我不知道如何使用嵌套数据为正确的突变排列 gql 模板字符串。我的架构如下所示,例如请注意,类型“公司”的字段“地址”是“地址”对象类型的数组。
type Company {
name: String!
website: String
Owner: User
Addresses: [Addresses]
}
type User {
name: String!
email: String
}
type Address {
street: String!
city: String!
country: String
contacts: [Contact]
}
type Contact {
name: String
email: String
phone: String
}
例如,我想创建一个新公司,它的新所有者和多个地址在同一时间在一个突变。对于地址,我也需要创建一个新的联系人。
您可以使用我们所谓的嵌套突变来实现这一点。首先,让我们看看如何从GraphiQL操场做到这一点:
mutation createNestedCompany {
createCompany(
owner: {
name: "Mickey"
email: "mickey@mouse.com"
}
addresses: [{
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Mickey"
email: "mickey@mouse.com"
phone: "+1 23456789"
}]
}, {
street: "B street"
city: "B city"
country: "B country"
contacts: [{
name: "Minney"
email: "minney@mouse.com"
phone: "+9 87654321"
}]
}]
) {
id
owner {
id
}
addresses {
id
contacts {
id
}
}
}
}
请注意,createCompany
突变具有对象参数的所有者
和列表对象参数的地址
。的地址
有一个嵌套的联系人
列表对象参数。
使用Apollo客户端,我们使用GraphQL变量指定输入参数,所以让我们看看在这种情况下它是如何看的:
const createNestedCompany = gql`
mutation createNestedCompany(
$owner: CompanyownerUser
$addresses: [CompanyaddressesAddress!]
) {
createCompany(
owner: $owner
addresses: $addresses
) {
id
owner {
id
}
addresses {
id
contacts {
id
}
}
}
}
`
使用Apollo调用突变时,我们现在必须将变量指定为对象:
const variables = {
owner: {
name: "Mickey"
email: "mickey@mouse.com"
},
addresses: [{
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Mickey"
email: "mickey@mouse.com"
phone: "+1 23456789"
}]
}, {
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Minney"
email: "minney@mouse.com"
phone: "+9 87654321"
}]
}]
}
用变量来称呼突变:
this.props.createNestedCompany({ variables })
.then((response) => {
console.log('Company, owner and addresses plus contacts created');
}).catch((e) => {
console.error(e)
})
变量类型CompanyownerUser
和[Companyaddres的地址!]
取决于多重性(对一;对多)、相关模型(公司
和用户
;公司
和地址
)以及相关字段(所有者
;地址
)的组合。当您导航到createCompany
突变时,您可以在GraphiQL游乐场文档中找到所有类型名称。
问题内容: 我有2个CSV文件:“数据”和“映射”: ‘映射’文件有4列:,,,和。填充所有四个列。 “数据”文件具有这些相同的列,其中填充了列,而其他三列为空白。 我希望我的Python代码来打开这两个文件并为每个数据文件,它的映射,以及从映射文件中值。 我知道只有2列存在时才需要使用dict(需要映射1列),但是当需要映射3列时我不知道如何实现。 以下是我尝试完成的映射的代码: 它返回。 经过
在用Python和其他动态语言工作了4年之后,我又回到了用C++工作。我希望能够使用unordered_map或map类创建一个递归嵌套列表(如上面的Python代码所示)。 我找不到办法去做那件事。 我想要实现的是键应该是char/string类型的,但是要插入的值应该是int类型的。 请告诉我这是怎么做的。 我最接近的是这个 但是我应该重载什么来获得上面的确切语法呢? 提前道谢。
我没有发现答案有什么帮助:作为作者,我想要绘制这样的图: 答案是在RDF中必须考虑三元组,但在这里不是这样吗? (地址,有街道,...) (地址,有邮政编码,...) (Person,has address,...) 我问的另一个原因是,我使用Jena Bean从Java类模型中生成RDF,结果也是一个嵌套结构。现在我想用Apache Jena做同样的事情,但我无法找到答案,文档中没有任何提示,我
问题内容: 说我要制作以下JSON 目前,这就是我实现的方式 似乎应该有一个更好的方法来做到这一点,而不是做更多的事情,然后将它们放置在主体中。有比我正在使用的方法更好的动态构建方法吗? 在此先感谢您的帮助! 问题答案: 如果您处理大量JSON数据,我真的建议您使用Gson或Jackson。这要方便得多,并且两个库都很好地支持与Java对象之间的相互转换(与通过JSONObjects手动构建JSO
本文向大家介绍PHP 中如何创建嵌套 JSON 对象,包括了PHP 中如何创建嵌套 JSON 对象的使用技巧和注意事项,需要的朋友参考一下 JSON结构可以使用以下代码创建-
了解如何在 Dreamweaver 中创建用于控制共享设计元素的页面中的内容的嵌套模板。 嵌套模板是指其设计和可编辑区域都基于另一个模板的模板。嵌套模板对于控制共享许多设计元素的站点页面中的内容很有用,但在各页之间有些差异。例如,基本模板中可能包含更宽广的设计区域,并且可以由站点的许多内容提供者使用,而嵌套模板可能进一步定义站点内特定部分的页面中的可编辑区域。 基本模板中的可编辑区域被传递到嵌套模