0

可以使用 FQL 来实现,但我找不到任何在 FaunaDB 中创建新文档的 GraphQL 突变示例,其中 _id 由应用程序定义,而不是由 FaunaDB 本身定义。

当然,我可以将我的应用程序生成的 ID(例如 uuidv4)添加为文档中的附加属性并为其创建索引,但考虑到文档无论如何都会有另一个主键,这似乎不正确。

4

1 回答 1

1

您可以使用解析器指令,与用户定义函数 (UDF) 关联以接受_id 作为参数,然后使用Create.

这是一个例子,

架构文件

type Order {
  customerName: String!
  price: Float!
}

input OrderInput {
  orderID: Int!
  customerName: String!
  price: Float!
}

type Query {
  CreateOrder(data: OrderInput!): Order! @resolver
}

UDF(创建订单)

Update(
  Function("CreateOrder"),
  {
  body: Query(Lambda(["orderdata"],
  Create(Ref(Collection("Order"), Select(["orderID"],Var("orderdata"))),
  {
    data: {
      customerName: Select(["customerName"], Var("orderdata")),
      price: Select(["price"], Var("orderdata"))
    }
  }
)))})

GraphQL 查询 在此处输入图像描述

在此处输入图像描述

于 2020-09-22T00:27:35.767 回答