问题描述
我的架构是:
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 客户端:
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