jim*_*ald 5 php mongodb bson laravel-5
Route::get('/', function () {
$tweets = Tweet::all();
return view('welcome', ['tweets' => $tweets]);
});
Run Code Online (Sandbox Code Playgroud)
我正在使用mongodb制作一个laravel应用程序.
当我转到'/'时,我在mongod终端中发现错误
AssertionException handling request, closing client connection: 10304 Client Error: Remaining data too small for BSON object
Run Code Online (Sandbox Code Playgroud)
这是我的推文模型(在App\Tweet中):
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Tweet extends Eloquent {
protected $collection = 'tweets_collection';
}
Run Code Online (Sandbox Code Playgroud)
出现这个问题()至少有两个原因Client Error: Remaining data too small for BSON object
:
1. PHP MongoDB驱动与机器上安装的MongoDB不兼容。
(最初在第一个答案中提到)。
检查页面上您计算机上设置的 PHP 驱动程序版本<?php phpinfo();
:
检索正在使用的 MongoDB 版本:
mongod --version\
# db version v3.2.0
Run Code Online (Sandbox Code Playgroud)
使用MongoDB网站上的兼容性表查看检查的PHP MongoDB驱动版本是否与MongoDB版本兼容:
如果版本不兼容,则需要卸载现有部件之一并安装兼容版本。根据我自己的经验,更改 PHP MongoDB 驱动程序要容易得多,因为只.so
需要不同的扩展文件。
2. 机器上安装了两个 PHP MongoDB 驱动程序。
由于MongoClient
已弃用,许多在线教程和文章(包括Github 上的官方 mongo-php-driver 存储库)现在指导安装mongodb
,而不是mongo
PHP 驱动程序。然而,一年多前,每个人都在谈论mongo
延期。
由于从mongo
到的这一更改mongodb
,我们可能会获得php.ini
文件中定义的两个扩展名。只需确保“动态扩展”部分下仅定义了一个扩展:
希望有人在寻找解决方案来修复通过 PHP MongoDB 驱动程序使用 MongoDB 时出现的“对于 BSON 对象来说剩余数据太小”错误时,这个答案会很有用。
归档时间: |
|
查看次数: |
393 次 |
最近记录: |