如何在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
相关产品推荐
相关产品推荐

