может arangoDB aql пропускать фильтры по условию?

Я недавно работаю в приложении bbs, и когда я использую aql, у меня возникает проблема, например:

//params:.com/t/123?&digest=true
=>
  FOR t IN threads
    FILTER t.digest == true && some conditions
    RETURN t

и результат такой, как ожидалось, но когда параметр 'digest' не определен или равен false, я хочу, чтобы он возвращал все потоки ... не то, что 'digest' = false, поэтому мне нужно использовать if ... else, чтобы написать почти два тот же код, просто удалите условие t.digest == true, например:

if(params.digest) {
  return `digest == true && conditions`
} 
return `conditions`

Я использую javascript, дайте мне направление ...


person lzszone    schedule 13.04.2017    source источник


Ответы (1)


Вы можете использовать функцию HAS(document, attributeName), чтобы проверить, является ли атрибут присутствует в документе.

FOR t IN threads
  FILTER (!HAS(t,"digest") || i.digest == true) && conditions
  RETURN t
person mpv89    schedule 13.04.2017
comment
params генерируется URL-адресом, если посетитель хочет просмотреть дайджест потоков = ›** params.digest = true **, и я добавлю в запрос условие t.digest == true, но если просмотр посетителей в обычном режиме, мне нужно добавить аналогичные коды, я имею в виду, что я хочу использовать такой удобный способ: - person lzszone; 13.04.2017
comment
params генерируется URL-адресом, если посетитель хочет просмотреть дайджест потоков = ›** params.digest = true **, и я добавлю в запрос условие t.digest == true, но если просмотр посетителей в обычном режиме, мне нужно добавить аналогичные коды, я имею в виду, что я хочу использовать такой удобный способ: filter ${params.digest? 't.digest == true && ' : ''} conditions - person lzszone; 13.04.2017
comment
извините за комментарии, я новичок на этом сайте, спасибо, что помогли мне - person lzszone; 13.04.2017