我有一个ModelPet,属性为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\""}}

在下一个版本的水线中将实现子文档查询。您的其他其他选择将是nativequery,具体取决于您的适配器。

在这种情况下,您的适配器将发挥最大作用。

关于node.js - 如何搜索“数组”类型的模型属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33526833/

10-12 13:48