带有绑定对象的 CreateIndex
Posted
技术标签:
【中文标题】带有绑定对象的 CreateIndex【英文标题】:CreateIndex with Binding Objects 【发布时间】:2020-02-14 22:08:48 【问题描述】:我有一个包含时间类型字段的集合。我需要能够按年或月-年组合查询此集合。
我曾尝试在网站本身上使用索引创建工具,在条款中使用 Year(data.expDate)
和 Month(data.expDate)
之类的东西,但这不起作用。
这是我的收藏的架构:
type Expense
_id: ID!
expAmount: Float!
expDate: Time!
expCategory: Category!
_ts: Long!
我需要能够列出特定年份或特定月份/年份的费用,而无需在我的集合中创建单独的月份和年份字段。
【问题讨论】:
【参考方案1】:解决方案是基于计算字段创建索引,然后将其绑定为术语,例如:
CreateIndex(
name: "expByYearMonth",
source: [
class: Collection("Expense"),
fields:
year:Query(Lambda("doc",Year(Select(["data","expDate"],Var("doc"))))),
month:Query(Lambda("doc",Month(Select(["data","expDate"],Var("doc")))))
],
terms: [ binding: "year" , binding: "month" ]
)
然后我可以按年、月进行搜索并获得类似以下内容的结果:
Paginate( Match(Index('expByYearMonth'), [2019, 10]) )
(特别感谢 @colllin 和 Fauna Slack 频道的其他乐于助人的人,他们为我指明了正确的方向。)
【讨论】:
以上是关于带有绑定对象的 CreateIndex的主要内容,如果未能解决你的问题,请参考以下文章
如何在不重新绑定 this 的情况下返回一个带有粗箭头函数的对象? [复制]
找不到“object”类型的不同支持对象“[object Object]”。 NgFor 仅支持绑定到 Iterables,例如带有异步管道的数组