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

如何在Directus嵌套关联中使用deep进行深层过滤?

Directus中deep参数嵌套数组关联过滤问题

我在Directus里用deep参数处理嵌套关联过滤时遇到问题:顶级的translations按languages_code: 'nl-NL'过滤是有效的,但variants数组下嵌套的translations数组用同样的规则过滤却没效果。我要的是把variants里那些translations中languages_code不等于nl-NL的项过滤掉。

当前无效的查询代码

deep: {
    translations: { _filter: { languages_code: 'nl-NL' } },
    variants: { _filter: { translations: { languages_code: 'nl-NL' } } }, // 这里不生效
}

待过滤的数据结构

{
    // 生效:translations: { _filter: { languages_code: locals.language } }
    translations: [
        {
            id: 7,
            products_id: 1,
            languages_code: 'nl-NL', // locals.language = nl-NL
            title: '...',
            description: '...',
            slug: '...',
            variantTitle: null,
        },
    ],
    // 不生效:variants: { _filter: { translations: { languages_code: locals.language } } } 
    // 推测是因为variants本身是数组,里面的translations也是数组
    variants: [
        {
            id: 1,
            product: 1,
            translations: [
                {
                    id: 1,
                    product_variants_id: 1,
                    languages_code: 'nl-NL',
                    title: 'Aantal',
                },
                {
                    id: 2,
                    product_variants_id: 1,
                    languages_code: 'en-US', // 这个对象需要被过滤掉
                    title: 'Amount',
                },
            ],
            products: [2, 3],
        },
    ],
}

解决方案

要实现嵌套数组的过滤,需要在variants的配置里再嵌套一层deep参数,对其内部的translations单独设置过滤规则,正确写法如下:

deep: {
    translations: { _filter: { languages_code: 'nl-NL' } },
    variants: {
        deep: {
            translations: { _filter: { languages_code: 'nl-NL' } }
        }
    }
}

原因是variants本身是关联数组,每个variant内部又包含translations数组关联,必须通过嵌套deep参数深入到第二层关联,才能精准过滤variants下的translations条目,只保留符合languages_code条件的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:02:43