2014-12-02 4 views
3

У меня есть список сообщений в блоге похож на нижеКак найти документы, соответствующие списку тегов?

[ 
    { 
     title: "Post #1", 
     tags: ["foo", "bar"] 
    }, 
    { 
     title: "Post #2", 
     tags: ["bar", "baz"] 
    }, 
    { 
     title: "Post #3", 
     tags: [] 
    }, 
    { 
     title: "Post #4" 
    }, 
    { 
     title: "Post #5", 
     tags: ["qux"] 
    }, 
    ... 
] 

Как можно использовать стандартный метод /posts GET найти:

  • все сообщения, которые соответствуют foo тег?
  • все сообщения, которые соответствуют тегам foo AND bar?
  • все сообщения, которые не имеют тегов?
+0

https://github.com/strongloop/loopback-example-relations-basic имеет различные примеры, которые могут быть связаны с вашим вопросом. – superkhau

+0

Первые два матча описаны здесь: http://stackoverflow.com/questions/26515167/how-to-query-models-by-a-property-that-is-an-array/27050795#27050795 Короче говоря, к моему понимание поддержки таких запросов очень ограничено. Но должен работать на источник данных mongo. Что касается существования, я бы попробовал либо 'inq', где оператор http://docs.strongloop.com/display/LB/Where+filter#Wherefilter-Operators с пустым массивом (никогда не пробовал себя), либо выполнить собственную реализацию на сервере с использованием специального кода источника данных. Например. используя $ size или $ exist для mongodb ... –

+1

В итоге я просто бросил Loopback и написал RESTful API с Express. IMHO его возможности запросов БД слишком ограничены для большинства реальных случаев. – kYuZz

ответ

1

Вы можете использовать стандартные/сообщения GET метод поиска:

  • все сообщения, которые соответствуют Foo тег?

    /сообщения фильтра =? { "Где": { "метка": { "Inq": [ "Foo"]}}}

  • всех сообщений, которые соответствуют тегам Foo И бар?

    /posts? Filter = {"where": {"and": [{"tags": {"inq": ["foo"]}}, {"tags": {"inq": [" bar "]}}]}}

  • все сообщения, которые не имеют меток?

    /сообщений фильтр =? { "Где": { "метки": []}}

По сравнению с БД запросов, Loopback построен на вершине Экспресс и поддерживает большинство запросов как это использует внутренние драйверы базы данных для создания запросов.

Смежные вопросы