Выбор документов из коллекции фауны между двумя датами и удовлетворяющих другим критериям

#faunadb

#faunadb

Вопрос:

Я могу использовать следующий код для извлечения документов из коллекции фауны, дата которых находится между начальной и конечной датами:

Разбиение на страницы(диапазон (Совпадение (Индекс («orders_by_date»)) , начало, конец))

Можно ли добавить другие критерии к этому оператору, чтобы получать не только, в данном случае, заказы между двумя датами, но и иметь поле status = «завершено».

Спасибо

Ответ №1:

Вы можете создать индекс таким образом:

 CreateIndex(
  {
    name:'orders_by_date_status',
    source:Collection("orders"), 
    terms: [{field:['data','status']}], 
    values:[{field:['data','order_date']},{field:['ref']}]
  }
)
 

и запросите свою коллекцию с помощью запроса, подобного этому:

 Paginate(
  Range(
    Match('orders_by_date_status','completed'),
    [Date("2020-03-20")],
    [Date("2020-06-20")]
  )
)
 

чтобы вернуть что-то вроде этого:

 {
  data: [
    [Date("2020-05-20"), Ref(Collection("orders"), "285246145700037121")],
    [Date("2020-06-20"), Ref(Collection("orders"), "285246152717107713")]
  ]
}
 

Надеюсь, это ответ на ваш вопрос.

Luigi