Решением этой проблемы было создание индекса на основе вычисляемых полей, которые затем связывались в термины, что-то вроде:
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 за то, что они указали мне правильное направление.)