laravelmongodb关闭客户端连接剩余数据太少
laravel mongodb closing client connection remaining data too small
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';
}
问题是 Laravel 无法与 MongoDB 通信,因为我同时使用 mongodb-1.1 php 驱动程序和 MongoDB 3.2 .根据此页面上的 table:https://docs.mongodb.org/ecosystem/drivers/php/,这两个版本不兼容。我卸载了MongoDB 3.2,安装了MongoDB 3.O,问题解决了
出现这个问题(Client Error: Remaining data too small for BSON object
)至少有两个原因:
1。 PHP MongoDB 驱动程序与机器上安装的 MongoDB 不兼容。
(最初在中提到)。
在 <?php phpinfo();
页面上检查 PHP 计算机上设置的驱动程序版本:
检索 MongoDB 正在使用的版本:
mongod --version\
# db version v3.2.0
使用compatibility table on MongoDB website查看是否检查PHPMongoDB驱动版本是否兼容MongoDB版本:
如果版本不兼容,则需要卸载现有部件之一并安装兼容版本。根据我自己的经验,更改 PHP MongoDB 驱动程序要容易得多,因为只需要不同的 .so
扩展文件。
2。机器上安装了两个 PHP MongoDB 驱动程序。
自 MongoClient
is deprecated, many tutorials and articles online (including official mongo-php-driver repository on Github) 现在指导安装 mongodb
,而不是 mongo
PHP 驱动程序。然而,一年多以前,每个人都在指着 mongo
扩展。
由于从 mongo
更改为 mongodb
,我们可能会在 php.ini
文件中定义这两个扩展名。 请确保,在"Dynamic Extension"部分下只定义了一个扩展名:
希望有人在寻找修复 "Remaining data too small for BSON object" 通过 PHP MongoDB 驱动程序使用 MongoDB 错误的解决方案时得到这个答案。
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';
}
问题是 Laravel 无法与 MongoDB 通信,因为我同时使用 mongodb-1.1 php 驱动程序和 MongoDB 3.2 .根据此页面上的 table:https://docs.mongodb.org/ecosystem/drivers/php/,这两个版本不兼容。我卸载了MongoDB 3.2,安装了MongoDB 3.O,问题解决了
出现这个问题(Client Error: Remaining data too small for BSON object
)至少有两个原因:
1。 PHP MongoDB 驱动程序与机器上安装的 MongoDB 不兼容。
(最初在
在 <?php phpinfo();
页面上检查 PHP 计算机上设置的驱动程序版本:
检索 MongoDB 正在使用的版本:
mongod --version\
# db version v3.2.0
使用compatibility table on MongoDB website查看是否检查PHPMongoDB驱动版本是否兼容MongoDB版本:
如果版本不兼容,则需要卸载现有部件之一并安装兼容版本。根据我自己的经验,更改 PHP MongoDB 驱动程序要容易得多,因为只需要不同的 .so
扩展文件。
2。机器上安装了两个 PHP MongoDB 驱动程序。
自 MongoClient
is deprecated, many tutorials and articles online (including official mongo-php-driver repository on Github) 现在指导安装 mongodb
,而不是 mongo
PHP 驱动程序。然而,一年多以前,每个人都在指着 mongo
扩展。
由于从 mongo
更改为 mongodb
,我们可能会在 php.ini
文件中定义这两个扩展名。 请确保,在"Dynamic Extension"部分下只定义了一个扩展名:
希望有人在寻找修复 "Remaining data too small for BSON object" 通过 PHP MongoDB 驱动程序使用 MongoDB 错误的解决方案时得到这个答案。