图数据库dgraph 的安装和使用


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'}}}]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值