You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展FaunaDB查询以获取customerRef关联的文档?

扩展FaunaDB查询以关联获取客户文档

你可以通过在Lambda中嵌套Let和Get操作,提取订单中的customerRef并获取对应的客户文档,最后将客户数据合并到订单结果里。

修改后的查询语句

Map(
  Paginate(Match(Index("orders_by_trx"), "220704142800610948")),
  Lambda("orderRef", 
    Let(
      {
        // 获取当前订单的完整文档
        orderDoc: Get(Var("orderRef")),
        // 从订单文档中提取customerRef,再获取对应的客户文档
        customerDoc: Get(Select(["data", "customerRef"], Var("orderDoc")))
      },
      // 合并订单文档和客户数据,把客户文档放到订单data的customer字段下
      Merge(
        Var("orderDoc"),
        { data: Merge(Var("orderDoc").data, { customer: Var("customerDoc") }) }
      )
    )
  )
)

关键逻辑说明

  • Let用于定义临时变量,先获取订单文档,再通过订单里的customerRef拉取客户文档
  • Select(["data", "customerRef"], Var("orderDoc"))精准定位订单数据中的客户引用
  • Merge用来将客户数据整合到订单结果中,你可以根据需求调整合并方式:
    • 如果只需要客户的data部分而非完整文档,把Var("customerDoc")改成Var("customerDoc").data即可

示例返回结果(简化版)

{
  data: [
    {
      ref: Ref(Collection("orders"), "336256180042072264"),
      ts: 1660641327310000,
      data: {
        customerRef: Ref(Collection("customers"), "340132521031237836"),
        transactionObj: {...},
        cart: {...},
        // 新增的客户数据
        customer: {
          ref: Ref(Collection("customers"), "340132521031237836"),
          ts: 1660532109876000,
          data: {
            name: "张三",
            email: "zhangsan@example.com"
            // 其他客户字段
          }
        }
      }
    }
  ]
}

内容的提问来源于stack exchange,提问作者CradleToCradle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:09:23