簡単な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)
}
ここで、graphql ミューテーションを呼び出さずに (遅すぎる)、DB に何百万もの json エントリを入力したいと考えています。たとえば、次の形状のいくつかの json ファイル (顧客と製品) でいっぱいのフォルダーがあります。
json 顧客ファイルの例:
{
id: "deadbeef",
name: "Bill Gates",
reviews: [
{
id:"1234",
comment: "nice product"
rating: 5,
productId: "5678"
}
]
}
json 製品ファイルの例:
{
id: "5678",
name: "Bluetooth headset",
}
私が理解したこと、ノード間のエッジを定義するには、まず各オブジェクトをオーバーロードする必要がありますuid
顧客は次のようになります。
{
id: "deadbeef",
uid: "_:deadbeef",
...
reviews: [
{
id:"1234",
uid:"_:1234",
productId: {uid: "_:5678"}
}
]
}
そして製品
{
id: "5678",
uid: "_:5678"
...
}
次に、それらをバッチインポートできます(これは純粋な推測であり、試したことはありません)。これはエントリをインポートする必要がありますが、挿入するデータについての手がかりがまだないため、DB がこれらのエントリをタイプに関連付ける方法を知りたいです。__typename
入力するために各エントリに追加できるようなプロパティはありますか?
[編集] 2 つの可能なプロパティを見つけましたがclass
、dgraph.type
どれをどのように使用すればよいかまだ疑問に思っています