【问题标题】:How to get indices using Jenssegers Mongodb如何使用 Jenssegers Mongodb 获取索引
【发布时间】:2021-12-02 06:05:51
【问题描述】:

我需要使用 laravel 在 mongodb 中获取集合的索引,我知道在 mongo compass 中您可以使用返回索引的 $ indexStats,尝试复制如下

DB::connection('mongodb')->collection("audience")->timeout(-1)->raw(function($collection){
    return $collection->aggregate([
        [
           '$indexStats' => new \stdClass()
        ]
    ], ["allowDiskUse" => true]);
});

但是用 dd() 检查结果,结果如下

MongoDB\Driver\Cursor {#2009}

事实是,我不知道那是什么,如果有人知道我做错了什么或如何获取索引,那将对我有很大帮助

非常感谢您的宝贵时间

【问题讨论】:

    标签: php laravel mongodb indexing


    【解决方案1】:

    我刚刚找到了解决办法,就是要把MongoDB\Driver\Cursor{#2009}转成数组,那我详细说一下代码是怎么回事

    $query = DB::connection('mongodb')->collection("audience")->raw(function($collection){
            return $collection->aggregate([
                [
                    '$indexStats' => new \stdClass()
                ]
            ], ["allowDiskUse" => true]);
        });
    dd($query->toArray());
    

    如果您需要将其转换为 laravel 集合,我会按照以下方式进行操作

    dd(collect(json_decode(\MongoDB\BSON\toJSON(\MongoDB\BSON\fromPHP($query->toArray())), true)));
    

    我把它转成json,解码,最后使用collect函数。

    我希望它对某人有所帮助。 问候:D

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2018-12-28
      • 2016-03-13
      • 2022-07-11
      相关资源
      最近更新 更多