如何在Gosu查询中过滤实体数组列的指定值?
Gosu查询筛选数组列仅包含指定值的记录
要筛选PaymentDetails表中CardTypes数组列**仅包含"Visa"**的记录,你需要针对数组类型的列使用集合匹配逻辑,而非直接匹配单个值。具体调整如下:
修正后的查询代码
var paymentList = Query.make(PaymentDetails) .compare("Column1", Equals, true) .subselect("ID", CompareNotIn, entity.Name, "PolicyPeriod") .join("Entity2") .join("Entity3") // 筛选CardTypes数组仅包含Visa的记录 .compare("CardTypes", Equals, [CardType.TC_VISA]) .select()
关键说明
- 数组类型列不能直接用单个值匹配,需传入仅包含目标值的数组,通过
Equals比较符判断数组内容是否完全一致。 - 若需求是
CardTypes数组包含Visa(允许存在其他值),可改用Contains比较符:.compare("CardTypes", Contains, CardType.TC_VISA)
内容的提问来源于stack exchange,提问作者shaher
相关产品推荐
相关产品推荐

