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
属性是否包含某个值?例如,我想选择所有标签为blue
和green
的记录。
这甚至可以通过 Waterline 实现吗?我找不到有关此主题的任何文档。
【问题讨论】:
【参考方案1】:Waterline 不支持这种方式的数组类型。检查记录是否具有某些值的正确方法是使用关联。请参阅堆栈溢出中的this answer。请参阅有关关联的 Sails 文档:http://sailsjs.org/#/documentation/concepts/ORM/Associations/OnetoMany.html
【讨论】:
我遇到了类似的场景,其中给定模型包含属性activities
。仅由字符串组成的数组。更糟糕的是,模型的不同实例的activities
没有重叠。为这些activities
创建自己的模型没有任何意义,因此在这种情况下使用关联不是一个真正的选择。是否有另一种通过数组是否包含值来查询模型实例的方法?以上是关于Waterline ORM - 检查数组属性是不是包含值的主要内容,如果未能解决你的问题,请参考以下文章
nodejs-ORM 操作数据库中间件waterline的使用
Sails.js Waterline ORM:.findOrCreate() 没有 .populate() 方法