This is the schema and sample rdf
type Customer {
customer_name: string
did_order: [Order]
}
type Order {
order.customer: Customer
order.item: [Item]
order.date: string
}
type Item {
item.name: string
}
item.name: string @index(exact) .
customer_name: string @index(term) .
did_order: [uid] .
order.customer: uid .
order.item [uid] .
order.date: string .
Sample data
{
set {
_:alice <name> "Alice" .
_:alice <dgraph.type> "Customer" .
_:alice <did_order> _:order1 .
_:alice <did_order> _:order2 .
_:bob <name> "bob" .
_:bob <dgraph.type> "Customer" .
_:bob <did_order> _:order3 .
_:bob <did_order> _:order4 .
_:order1 <dgraph.type> "Order" .
_:order1 <order.customer> _:alice .
_:order1 <order.date> "2019-10-09" .
_:order1 <order.item> _:x .
_:order1 <order.item> _:y .
_:order2 <dgraph.type> "Order" .
_:order2 <order.customer> _:alice .
_:order2 <order.date> "2019-10-09" .
_:order2 <order.item> _:y .
_:order2 <order.item> _:z .
_:order3 <dgraph.type> "Order" .
_:order3 <order.customer> _:bob .
_:order3 <order.date> "2019-10-09" .
_:order3 <order.item> _:z .
_:order4 <dgraph.type> "Order" .
_:order4 <order.customer> _:bob .
_:order4 <order.date> "2019-10-09" .
_:order4 <order.item> _:z .
_:x <dgraph.type> "Item" .
_:y <dgraph.type> "Item" .
_:z <dgraph.type> "Item" .
_:x <item.name> "pen" .
_:y <item.name> "pencil" .
_:z <item.name> "quill" .
}
}
The expected result is
{
Alice : 3
Bob : 1
}
explaination :-
Alice ordered items :- pencil,pen,quill
bob ordered item :- quill
Take away for me from this example :-
some way to create and use variable whose scope is limited i.e query variable(not value variable) whose scope is limited to each customer.