1

我正在尝试启动 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'shasCreatedhasReceived字段需要我拉整个数组,将一个新的附加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 附加到数组或更新对象而无需检索整个对象?

4

0 回答 0