【问题标题】:The $bucket 'boundaries' field must be an array, but found type: string$bucket 'boundaries' 字段必须是数组,但找到类型:字符串
【发布时间】:2021-05-09 12:37:12
【问题描述】:

需要将$contents 作为boundaries 值传递,但我面临上述错误。请帮忙。提前致谢

 $contents = $query->pluck('competition_id')->toArray();

        $data = $query->raw(function ($collection) {
        return $collection->aggregate([
            [
                '$bucket' => [ 
                    'groupBy' => '$competition_id',
                    'boundaries' => '$contents',
                    'default' => "Other",
                    'output' => [
                        "data" => [
                            '$push' => [
                                "id"                => '$id',
                                "season_id"         => '$season_id',
                                "status_id"         => '$status_id',
                                "venue_id"          => '$venue_id',
                                "referee_id"        =>  '$referee_id',
                                "neutral"           => '$neutral',
                    

                            ]
                        ]
                    ]
                ]
            ]
        ]);
    });

【问题讨论】:

    标签: laravel mongodb aggregation-framework


    【解决方案1】:

    'boundaries' => '$contents'

    $bucket 'boundaries' 字段必须是数组,但找到类型:字符串

    $bucket 边界不允许引用内部字段,它将被视为字符串,并且需要从外部作为数组输入,

    它必须是$bucket documentation中提供的指令的外部数组元素,

    基于 groupBy 表达式的值数组,指定每个存储桶的边界。每对相邻的值都充当存储桶的包含下边界和独占上边界。您必须至少指定两个边界。

    指定的值必须是升序的并且都是相同的类型。例外情况是,如果值是混合数字类型,例如:

    [ 10, NumberLong(20), NumberInt(30) ]

    示例:

    • [ 0, 5, 10 ] 的数组创建两个桶:
      • [0, 5) 包含下限 0 和互斥上限 5。
      • [5, 10) 包含下限 5 和互斥上限 10。

    【讨论】:

    • 嗨,有什么办法可以解决这个问题,我需要动态传递边界值,它不能是静态的。谢谢
    • 不,使用 $bucket 是不可能的,但是您可以提出具有确切要求的新问题,例如示例文档和预期结果,可能会有其他方法来满足您的要求。
    • 好的,谢谢。我发布了一个新问题,我想在 mongodb 中使用 $group 进行分组,并从集合中获取所有值。请帮忙检查一下。谢谢。我也添加了问题的链接link
    猜你喜欢
    • 1970-01-01
    • 2022-10-24
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    相关资源
    最近更新 更多