Strapi V4查询无Parent关联的顶级评论报错,求解决方法
在Strapi中查询未设置parent关联的顶级评论
你遇到的问题是因为Strapi对关联字段的null过滤有特定语法要求,直接在parent字段下使用$null会触发语法错误。正确的做法是针对关联字段的具体属性(比如id)应用过滤,或者使用$exists操作符判断关联是否存在。
修正后的代码示例
const posts = await strapi.entityService.findMany('api::post.post', { filters: { thread: { id: { $eq: entity[0].id, } }, parent: { id: { $null: true } } } });
另一种写法(使用$exists)
如果你的Strapi版本支持,也可以用$exists: false直接判断关联是否存在:
const posts = await strapi.entityService.findMany('api::post.post', { filters: { thread: { id: { $eq: entity[0].id, } }, parent: { $exists: false } } });
原理说明
Strapi的关联字段本质是存储关联记录的ID,当未设置parent时,该ID值为null。通过针对parent.id设置$null: true,就能精准筛选出没有父评论的顶级评论。而直接在parent字段下使用$null会被Strapi判定为非法的根级操作符,这就是你报错的原因。
内容的提问来源于stack exchange,提问作者Thomas Marchant
相关产品推荐
相关产品推荐

