Как использовать маршрут поиска SailsJS?

Вариант использования

Я хочу создать сложный запрос с более чем одним критерием, используя SailsJS "Найти, где" схема маршрута. Однако я не могу успешно использовать компаратор equals и условие and. Я не смог найти подходящей документации о том, как реализовать маршрут Найти где, поэтому я работал с исходный код и предложил следующие сценарии.

Вопрос

Используя SailsJS Find Where Blueprint Route, как реализовать:

  • сравнение равенства
  • условие и

Сценарии успеха

Следующие сценарии вернут соответствующий ответ:

http://localhost:1337/api/user?name=fred
http://localhost:1337/api/user?where={"name":{"startsWith":"fred"}}
http://localhost:1337/api/user?where={"name":{"endsWith":"fred"}}
http://localhost:1337/api/user?where={"name":{"contains":"fred"}}
http://localhost:1337/api/user?where={"name":{"like":"fred"}}
http://localhost:1337/api/user?where={"or":[{"name":{"startsWith":"fred"}}]}
http://localhost:1337/api/user?where={"or":[{"name":{"startsWith":"fred"}},{"path":{"endsWith":"fred"}}]}

Сценарий отказа

Следующие сценарии возвращают пустой ответ:

http://localhost:1337/api/user?where={"name":{"equals":"fred"}}
http://localhost:1337/api/user?where={"name":{"=":"fred"}}
http://localhost:1337/api/user?where={"name":{"equal":"fred"}}
http://localhost:1337/api/user?where={"and":[{"name":{"startsWith":"fred"}}]}
http://localhost:1337/api/user?where={"and":[{"name":{"startsWith":"fred"}},{"path":{"endsWith":"fred"}}]}

person Pete    schedule 13.08.2014    source источник
comment
К вашему сведению: на случай, если вы пытаетесь найти значения даты, существует открытая проблема.   -  person Pete    schedule 20.08.2014


Ответы (1)


Чтобы использовать запросы «и», вы используете синтаксис строки запроса и критерии цепочки вместе, используя символ амперсанда. Для более сложных запросов, таких как OR или сложные операторы, лучше всего написать действие контроллера. Если вы решите придерживаться чертежей, вы можете использовать наиболее допустимые запросы Waterline, закодированные как JSON.

Для простых запросов вы используете метод строки запроса. Следующее будет строить запрос «и» для имени и школы.

http://localhost:1337/api/user?name=fred&school=foo

Чтобы связать вместе более продвинутые операторы, должно работать следующее:

http://localhost:1337/api/user?where={"name":{"startsWith":"fred"},"path":{"endsWith":"fred"}}
person particlebanana    schedule 13.08.2014