dgraph 新增数据或修改删除数据叫一个突变
查询叫一个查询
新增插入数据
dgraph 支持用json格式插入数据 新增数据
#post 请求 直接调用突变API http://localhost:8080/mutate?commitNow=true
{
"set":[
{
"name": "刘备",
"age": 40,
"usernameOFen":"liubei",
"follows": {
"name": "孙尚香",
"age": 28,
"follows":{
"name": "Leyla",
"age": 31
}
}
}
]
}
添加索引 以上的name字段设置为索引
curl 192.168.1.172:8080/alter -XPOST -d $' name: string @index(term) .'
修改数据 同样调用突变接口
通过查询得知孙尚香的dgraph 给 孙尚香分配的uid 是0x2711
添加张飞为孙尚香的朋友
{
"set":[{
"uid":"0x2711",
"friends":
{
"name":"张飞",
"age":"20",
"money":"10",
"usernameOFen":"zhangfei"
}}]}
添加关羽为刘备的朋友 friends
{
"set":[{
"uid":"0x2713",
"money":"10",
"friends":
{
"name":"关羽",
"age":"27",
"money":"888",
"usernameOFen":"guanyu"
}}]}
用python 查询dgraph 已有数据
import json
import pydgraph
import time
import logging
logger = logging.getLogger(__name__)
# Create a client stub.
client_stub = pydgraph.DgraphClientStub('192.168.1.172:9080')
# Create a client.
client = pydgraph.DgraphClient(client_stub)
## dgraph 数据库根据索引 查询相应数据
def atest_query_edge_attr():
query = '''{
friends_data(func:eq(name,"刘备")){
uid
name
age
money
friends{
name
age
uid
money
usernameOFen
}
usernameOFen
follows{
name
age
uid
friends{
name
age
uid
money
usernameOFen
}
}
}
}'''
variables = {}
res = client.txn(read_only=False).query(query, variables=variables)
ppl = json.loads(res.json)
all = ppl['friends_data']
#print(f'query: {all}')
print(ppl)
atest_query_edge_attr()
------------------->>>>
{'friends_data': [{'uid': '0x2713', 'name': '刘备', 'age': 40, 'money': '10', 'friends': {'name': '关羽', 'age': 27, 'uid': '0x2715', 'money': '888', 'usernameOFen': 'guanyu'}, 'usernameOFen': 'liubei', 'follows': {'name': '孙尚香', 'age': 28, 'uid': '0x2711', 'friends': {'name': '张飞', 'age': 20, 'uid': '0x2714', 'money': '10', 'usernameOFen': 'zhangfei'}}}]}