faunadb - 为所有活动项目创建索引
问题描述
我有一组遵循此架构的文档{label: String, status: Number}
。
我想引入一个新字段,deleted_at: Date
如果文档已被删除,它将保存信息。似乎是索引的完美用例,能够搜索所有未删除的任务。
CreateIndex({
name: "activeTasks",
source: Collection("tasks"),
terms: [
{ field: ["data", "deleted_at"] }
]
})
然后在 shell 中按 undefined / null 值过滤:
Paginate(Match(Index("activeTasks"), null))
Paginate(Match(Index("activeTasks"), undefined))
即使对于我明确设置deleted_at
为null
. 不过,这不是我的意思。我想获取根本没有deleted_at
定义的文档,这样我就不必更新整个集合。
PS。当我在哪里添加文档deleted: "test"
并查询它时,shell 确实返回了预期的结果。
我没有得到什么?
解决方案
原因是 FaunaDB 不支持像您认为的那样读取空/空值。你需要使用一个特殊Bindings
的来做到这一点。
请务必查看https://docs.fauna.com/fauna/current/tutorials/indexes/bindings.html#empty以获得更详尽的解释和示例。
我对绑定如何工作的理解将产生以下代码。我还没有测试过它,我不确定它是否有效。
您需要一个特殊的绑定索引:
CreateIndex({
name: "activeTasks",
source: [{
collection: Collection("tasks"),
fields: {
null_deleted_at: Query(
Lambda(
"doc",
Equals(Select(["data", "deleted_at"], Var("doc"), null), null)
)
)
}
}],
terms: [ {binding: "null_deleted_at"} ],
})
用法:
Map(
Paginate(Match(Index("activeTasks"), true)),
Lambda("X", Get(Var("X")))
)
推荐阅读
- r - 在 R 中是否 NA == NA?
- r - (R) 解析字符向量并分成两个单独的列
- amazon-web-services - 无法为 HEAD 操作设置 S3 策略(403 - 禁止)
- c++ - 使用同一词典中的多个标记进行 Aruco 标记跟踪
- javascript - React Native - 如何在页面之间导航 - 错误:未定义不是函数(近,'...(0,_reactNAvigation.StackNavigator)...'))
- c# - 使用最小起订量对并行功能进行单元测试
- php - 如何使用光标或分页键遍历 Json 页面
- python - 如何从python中提取的补丁列表中重建图像/数组?
- events - 无法迭代地分配日历 ID 以从谷歌日历中提取事件
- python - 无法导入 python 类