如何使用 Jenssegers Mongodb 获取索引
Posted
技术标签:
【中文标题】如何使用 Jenssegers Mongodb 获取索引【英文标题】:How to get indices using 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
事实是,我不知道那是什么,如果有人知道我做错了什么或如何获取索引,那将对我有很大帮助
非常感谢您的宝贵时间
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何使用 Jenssegers Mongodb 获取索引的主要内容,如果未能解决你的问题,请参考以下文章
安装 Jenssegers\Mongodb 时在 laravel 中出现问题
将 mongodb.so 添加到 php.ini 后 XAMPP (Apache) 崩溃