我有Model
,Pet
,其属性为favoriteFoods
。
// Pet.js
module.exports = {
attributes: {
name: {
type: 'string'
},
favoriteFoods: {
type: 'array'
}
}
};
favoriteFoods
存储为array
,因为它是用户的自由文本字段。
现在,根据find
的值,array
是否有办法?
我实际上对从URL查询感兴趣,以下示例可以正常工作,但这并不理想。
/pet?where={"favoriteFoods":{"contains":"Best Food"}}
有更好的方法吗?字符串比较似乎不是最佳解决方案。
例如,如果一个示例条目具有favoriteFoods: ["Best Food", "Best Treats"]
而另一个条目具有favoriteFoods: ["Second Best Food", "Best Treats"]
,则上面的query
将返回2个结果。我们的目标是与数组中的一个条目完全匹配的结果,因此这不会给我们预期的结果。
答案 0 :(得分:0)
最简单的解决方案,虽然可能不是最高效的解决方案,但只需简单地封装在引号中。以下内容会找到"Best Food"
而不是"Second Best Food"
/pet?where={"favoriteFoods":{"contains":"\"Best Food\""}}
子文档查询正在下一版的水线中实施。您的其他选择是native
或query
,具体取决于您的适配器。
在这种情况下,您的适配器将产生最大的不同。