我们使用的是Laravel 8.0、带有1.16版驱动程序的MongoDB 5.0和JensSegers Package 3.8,根据下面介绍的手册,它们似乎是兼容的:

https://github.com/jenssegers/laravel-mongod

我们的MongoDB配置如下:

'mongodb' => [
   'driver'   => 'mongodb',
   'host'     => env('DB_CONNECTION_THIRD', 'localhost'),
   'port'     => env('DB_PORT_THIRD', 27017),
   'database' => env('DB_DATABASE_THIRD', 'your_db_name'),
            'username' => env('DB_USERNAME_THIRD', 'your_username'),
   'password' => env('DB_PASSWORD_THIRD', 'your_password'),
],

此外,样例模型如下所示:

namespace App\Models\AI;

use Jenssegers\Mongodb\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Chatgpt extends Model
{
    protected $connection = 'mongodb';
    protected $collection = 'my_log';
}

每次我们try 将记录插入数据库时,都会收到相同的错误:

"message": "Undefined class constant 'PRIMARY'"

甚至,我们try 定义主键,但它不起作用.我们try 了不同的解决方案,但这个问题仍然存在.关于这个问题,社会上没有什么可以肯定的讨论.如有任何帮助或线索,我们将不胜感激.

推荐答案

以下代码是用于定义位于mongodb/mongodb/src/function.php中的阅读首选项的默认模板:

 $readPreference = extract_read_preference_from_options($options);
    if (! $readPreference instanceof ReadPreference) {
        // TODO: PHPLIB-476: Read transaction read preference once PHPC-1439 is implemented
        $readPreference = new ReadPreference(ReadPreference::PRIMARY);
    }

我们应该通过以下更改对其进行更改:

$readPreference = new ReadPreference('primary');

我已经判断过这个解决方案,它起作用了!

Php相关问答推荐

在WooCommerce中执行一次银行电汇确认付款代码

一列必须指定多个变量的Laravel查询

使用.htaccess将任何路由重定向到文件

在Laravel Eloquent中实现一对多关系

将SVG包含在另一个php生成的SVG中

WooCommerce中基于用户角色的不同产品差价

添加不存在的订单元数据以扩展WooCommerce针对特定产品的管理订单搜索

如何批量处理消息总线中的消息

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

PHP 数组中第一级 node 到 XML 的唯一名称

在 PHP MySQL 中自动生成账单编号

PHP 中的 libgd 无法读取 Apache 配置中的 SetEnv GDFONTPATH

如何获得没有运输等级的产品

URL中包含"&"与DirectoryIterator不兼容

根据购买产品的自定义字段替换WooCommerce添加到购物车按钮

ACF 更新字段功能不更新 WordPress 中的任何数据

即使密码匹配,密码处理程序也会返回错误

在 DomPDF 和 Laravel 中使用内联 css

Symfony 自定义注销

用于多态服务的 Symfony setter 注入