Waterline ORM - 检查数组属性是不是包含值

Posted

技术标签:

【中文标题】Waterline ORM - 检查数组属性是不是包含值【英文标题】:Waterline ORM - check if an array attribute contains valuesWaterline ORM - 检查数组属性是否包含值 【发布时间】:2014-11-15 15:57:16 【问题描述】:

我有一个具有这些属性的模型:

  attributes: 
    title: 
        type: 'string'
    ,
    tags: 
        type: 'array'
    
  

如何查询tags 属性是否包含某个值?例如,我想选择所有标签为bluegreen 的记录。 这甚至可以通过 Waterline 实现吗?我找不到有关此主题的任何文档。

【问题讨论】:

【参考方案1】:

Waterline 不支持这种方式的数组类型。检查记录是否具有某些值的正确方法是使用关联。请参阅堆栈溢出中的this answer。请参阅有关关联的 Sails 文档:http://sailsjs.org/#/documentation/concepts/ORM/Associations/OnetoMany.html

【讨论】:

我遇到了类似的场景,其中给定模型包含属性activities。仅由字符串组成的数组。更糟糕的是,模型的不同实例的activities 没有重叠。为这些activities 创建自己的模型没有任何意义,因此在这种情况下使用关联不是一个真正的选择。是否有另一种通过数组是否包含值来查询模型实例的方法?

以上是关于Waterline ORM - 检查数组属性是不是包含值的主要内容,如果未能解决你的问题,请参考以下文章

nodejs-ORM 操作数据库中间件waterline的使用

nodejs下的数据库ORM---waterline

Sails.js Waterline ORM:.findOrCreate() 没有 .populate() 方法

Waterline ORM 线程在设计上是安全的吗?

SailsJS / Waterline ORM:仅使用一个查询更新多个条目

在视图中显示一对多关系sails.js waterline orm的列表