我有一个Model
,Pet
,属性为favoriteFoods
。
// Pet.js
module.exports = {
attributes: {
name: {
type: 'string'
},
favoriteFoods: {
type: 'array'
}
}
};
favoriteFoods
存储为array
,因为它是用户的自由文本字段。现在,有没有办法基于该
find
的值?我实际上对从URL查询感兴趣,下面的示例确实可以工作,但这并不理想。
array
有没有更好的办法?字符串比较似乎不是最好的解决方案。
例如,如果一个示例条目具有
/pet?where={"favoriteFoods":{"contains":"Best Food"}}
,而另一个示例具有favoriteFoods: ["Best Food", "Best Treats"]
,则上面的favoriteFoods: ["Second Best Food", "Best Treats"]
将返回2个结果。我们的目标是得到与数组中一个条目完全匹配的结果,因此这不会给我们预期的结果。 最佳答案
最简单的解决方案(虽然可能不是性能最高的解决方案)只是简单地用引号引起来。以下内容将找到"Best Food"
而不是"Second Best Food"
/pet?where={"favoriteFoods":{"contains":"\"Best Food\""}}
在下一个版本的水线中将实现子文档查询。您的其他其他选择将是native
或query
,具体取决于您的适配器。
在这种情况下,您的适配器将发挥最大作用。
关于node.js - 如何搜索“数组”类型的模型属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33526833/