【发布时间】:2020-02-29 11:42:13
【问题描述】:
我刚刚开始了一个简单的 graphql 架构:
type Product {
productID: ID!
name: String @search(by: [term])
reviews: [Review] @hasInverse(field: about)
}
type Review {
id: ID!
about: Product! @hasInverse(field: reviews)
by: Customer! @hasInverse(field: reviews)
comment: String @search(by: [fulltext])
rating: Int @search
}
type Customer {
custID: ID!
name: String @search(by: [hash, regexp])
reviews: [Review] @hasInverse(field: by)
}
现在我想用数百万个 json 条目填充数据库,而不调用 graphql 突变(太慢)。例如,我有一个文件夹,里面装满了以下形状的几个 json 文件(客户和产品)。
json客户文件示例:
{
id: "deadbeef",
name: "Bill Gates",
reviews: [
{
id:"1234",
comment: "nice product"
rating: 5,
productId: "5678"
}
]
}
json产品文件示例:
{
id: "5678",
name: "Bluetooth headset",
}
据我所知,to defined edges between nodes,我首先必须用 uid 重载每个对象
客户会变成:
{
id: "deadbeef",
uid: "_:deadbeef",
...
reviews: [
{
id:"1234",
uid:"_:1234",
productId: {uid: "_:5678"}
}
]
}
还有产品
{
id: "5678",
uid: "_:5678"
...
}
然后我们可以批量导入它们(这纯粹是猜测,我从未尝试过)。虽然这应该导入条目,但我想知道数据库如何将这些条目与类型相关联,因为对于我们要插入的数据还没有任何线索。有没有像__typename 这样的属性可以添加到我的每个条目中以输入它们?
[编辑] 我找到了两个可能的属性 class 和 dgraph.type 仍然想知道应该如何使用它们以及应该如何使用它们
【问题讨论】: