Route::get('/', function () {
$tweets = Tweet::all();
return view('welcome', ['tweets' => $tweets]);
});
我正在使用 mongodb 制作一个 laravel 应用程序。
当我转到“/”时,我在 mongod 终端中收到一个错误,上面写着
AssertionException handling request, closing client connection: 10304 Client Error: Remaining data too small for BSON object
这是我的推文模型(在 App\Tweet 中):
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Tweet extends Eloquent {
protected $collection = 'tweets_collection';
}
最佳答案
出现此问题 (Client Error: Remaining data too small for BSON object
) 的原因至少有两个:
1. PHP MongoDB驱动与 native 安装的MongoDB不兼容。
(最初在 first answer 中提到)。
检查在您的机器上设置的 PHP 驱动程序版本 <?php phpinfo();
页面:
检索正在使用的 MongoDB 版本:
mongod --version\
# db version v3.2.0
使用 compatibility table on MongoDB website查看检查的 PHP MongoDB 驱动程序版本是否与 MongoDB 版本兼容:
如果版本不兼容,则需要卸载现有部件之一并安装兼容版本。根据我自己的经验,更改 PHP MongoDB 驱动程序要容易得多,因为只有不同的 .so
扩展文件是必需的。
<强>2。机器上安装了两个 PHP MongoDB 驱动程序。
自从 MongoClient
已弃用,许多在线教程和文章(包括 official mongo-php-driver repository on Github )现在指导安装 mongodb
,而不是 mongo
PHP 驱动程序。一年前,大家都在指着mongo
但是,扩展名。
由于 mongo
的这一变化至mongodb
,我们可能会得到 php.ini
中定义的两个扩展文件。 请确保,“动态扩展”部分下只定义了一个扩展:
希望有人在寻找通过 PHP MongoDB 驱动程序与 MongoDB 一起使用 MongoDB 来修复“Remaining data too small for BSON object”错误的解决方案时得到这个有用的答案。
关于php - laravel mongodb 关闭客户端连接 剩余数据太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399409/