You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Channel中查询自定义对象?排查invalid field operation报错

问题解决:Stream Chat queryChannels 嵌套字段过滤报错

直接嵌套对象的过滤写法不符合Stream Chat的查询规则,导致出现invalid field operation错误。解决方法是用点标记法指定嵌套字段的路径,或者结合操作符明确匹配条件。

正确的过滤写法

方法一:点标记法直接匹配

const filter = { 
  type: 'messaging', 
  'data.custom.name': 'testing' 
};

方法二:使用$eq操作符明确匹配(适用于复杂条件场景)

const filter = { 
  type: 'messaging', 
  'data.custom.name': { $eq: 'testing' } 
};

修改后的完整查询代码

const filter = { 
  type: 'messaging', 
  'data.custom.name': 'testing' 
};
const sort = [{ last_message_at: -1 }]; 

const channels = await chatClient.queryChannels(filter, sort, {
    watch: true, // 默认开启
    state: true,
});

原因说明

Stream Chat的查询API不支持直接通过嵌套对象(如data: { custom: { name: 'testing' } })来指定过滤条件,必须通过点路径(data.custom.name)明确指向深层嵌套的字段,这样服务端才能正确解析要匹配的目标字段。

内容的提问来源于stack exchange,提问作者luis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:15:59