如何使用 Python 更新 Dgraph 中的节点

问题描述

我的架构是:

schema = """id: int @index(int) .
             question: string .
             answer: string .
             creation_time: int .
             interval_time: int .
             Box_id: int .
             
             type Card {
                id
                question
                answer
                creation_time
                interval_time
                Box_id
             }"""

假设我插入了一些节点,我想更新一张卡的问题。我该怎么做?我知道有一个 set 函数,但我不知道如何在 python 中使用它,也找不到示例或其他任何东西。

解决方法

在 Dgraph 文档中有一个带有示例突变的 Python 客户端:

reprex package

nquads = """
  <0x2a> <question> "New Question Text Here..." . 
"""
mutation = txn.create_mutation(set_nquads=nquads)
request = txn.create_request(mutations=[mutation],commit_now=True)
txn.do_request(request)

其中 0x2a 是您要更新的卡片的 uid。如果您没有 uid,则需要遵循 upsert 模式。

query = """
  { u as var(func: eq(id,42)) @filter(type(Card)) }
"""
nquad = """
  uid(u) <question> "New Question Text Here..." . 
"""
mutation = txn.create_mutation(set_nquads=nquad)
request = txn.create_request(query=query,mutations=[mutation],commit_now=True)
txn.do_request(request)

其中 42 是您要更新的卡片的 id

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...