Выберите документы из коллекции "Фауна" между двумя датами И, которые удовлетворяют другому критерию.

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

Paginate (Range (Match (Index (orders_by_date)), start, end))

Можно ли добавить к этому утверждению еще один критерий, чтобы получать в этом случае не только заказы между двумя датами, но также иметь поле status = completed.

Спасибо


person Marie    schedule 17.12.2020    source источник


Ответы (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")]
  ]
}

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

Луиджи

person Luigi Servini    schedule 18.12.2020
comment
Красиво поработали, спасибо. - person Marie; 18.12.2020