Я пытаюсь написать сложный запрос поиска, используя Waterline из Sails.js. Вот упрощенный пример объекта, на котором я делаю поиск:
По сути, я хочу написать запрос, в котором заданная строка поиска может быть равна id
, быть в атрибуте myArray
или иметь значение myNestedObject.nestedAttribute
.
Я знаю, что могу сделать или вот так:
MyModel.find().where({ or: [] });
В этом массиве, который указан как or
в .where()
, должны быть добавлены совпадения, например:
{ id: { 'contains': searchTerm } }
Как мне сделать запрос с использованием Ватерлинии, где я могу предоставить поисковый запрос (searchTerm
), чтобы узнать, находится ли это значение в объекте myArray
? И как я могу проверить вложенные атрибуты? Я использую адаптер sails-mongo, но я бы не хотел писать какие-либо специфичные для Mongo запросы, чтобы в будущем у меня были все преимущества использования ORM (например, если мы переходим из Mongo или что-то в этом роде).