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

如何在FaunaDB中筛选出interval非空的文档?

问题1:过滤索引中interval为null的文档

你需要在索引的source中添加predicate(断言)来过滤掉start或end为空的文档,确保索引只包含能计算出有效interval的条目。修改后的索引代码如下:

CreateIndex({
  name: "foo_index",
  source: {
    collection: Collection("bar_collection"),
    fields: {
      interval: Query(
        Lambda(
          "bazDoc",
          Subtract(
            Select(["data", "end"], Var("bazDoc")),
            Select(["data", "start"], Var("bazDoc"))
          )
        )
      )
    },
    // 添加断言,仅保留start和end均非空的文档
    predicate: Query(
      Lambda(
        "bazDoc",
        And(
          Not(IsNull(Select(["data", "start"], Var("bazDoc"), null))),
          Not(IsNull(Select(["data", "end"], Var("bazDoc"), null)))
        )
      )
    )
  },
  values: [
    { binding: "interval"},
    { field: ["ref", "id"]}
  ]
})

修改后,索引会自动排除start或end为空的文档,返回结果里不会再出现interval为null的条目。同时,因为已经通过断言过滤了空值,binding里的interval计算可以去掉原有的If判断,直接计算差值即可。

问题2:FaunaDB新手学习资源推荐

除官方文档外,这些资源适合新手入门和进阶:

  • Fauna官方博客:包含大量实战案例、最佳实践和功能详解,能快速掌握实际场景的用法
  • Fauna社区论坛:可以和全球的Fauna开发者交流问题、分享经验,很多常见问题都能在这里找到解决方案
  • YouTube官方教程视频:有可视化的操作演示和项目实战讲解,适合偏好视频学习的开发者
  • 第三方技术平台(如Dev.to、Medium):很多开发者会分享自己的FaunaDB实战项目和踩坑经验,能从实际案例中学习

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:25:18