我正在尝试启动 Dgraph,但如果我理解正确,似乎使用 GraphQL api 将节点添加到节点数组需要不必要的工作量:
我有以下简化的架构:
type User @secret(field: "password") {
account: String! @id
email: String! @search(by: [hash])
extension: String! @search(by: [hash])
phone: String! @search(by: [hash])
hasCreated: [Transaction]! @hasInverse(field: from)
hasReceived: [Transaction]! @hasInverse(field: to)
}
type Transaction {
id: ID!
type: TransactionType! @search(by:[terms])
amount: Float!
assetCode: String! @search(by:[terms])
to: User!
from: User!
initiatedAt: DateTime! @search(by:[hash])
completedAt: DateTime @search(by:[hash])
status: Status!
}
对我来说,似乎将一个节点添加到User
'shasCreated
或hasReceived
字段需要我拉整个数组,将一个新的附加Transaction
到数组,然后使用updateUser
突变来完成更新。但是updateUser
突变需要我把所有的Transactions
和所有 Users
的东西都附加到这些交易等等。
尝试检索整个用户对象的示例:
query {
getUser(id:"%s"){
account
email
extension
phone
hasCreated {
id
type
amount
assetCode
to {
...
}
}
hasReceived {
id
type
amount
assetCode
to {
...
}
}
}
}
}
是否有另一种方法可以使用 GraphQL api 附加到数组或更新对象而无需检索整个对象?