php MongoDB/DocumentDB bson_append_array():检测到无效阵列,数组参数的第一个元素不是“0”

gwo2fgha  于 2023-06-20  发布在  PHP
关注(0)|答案(3)|浏览(100)

最近,我将我的一个项目(PHP 7.4/Lumen/Ubuntu 20.04)从MongoDB迁移到了与MongoDB兼容的AWS DocumentDB。迁移后,所有CLI脚本都触发了此奇怪的通知/警告

bson_append_array(): invalid array detected. first element of array parameter is not "0".

除了这条消息之外,所有的功能似乎都在正常工作(即使我从ini文件中隐藏了所有的PHP错误,这仍然显示出来)。我不太清楚到底发生了什么。
消息实际上来自“find”方法。我也试过抑制味精,但没有运气。
有人知道这是怎么回事吗?感谢并感谢您提前的所有回复。

  • DocumentDB版本4.0
  • PHP SDK Composer版本1.9.0
tf7tbtn2

tf7tbtn21#

如果将&authMechanism=SCRAM-SHA-1添加到连接字符串,则显示警告。

ggazkfy8

ggazkfy82#

我根据我目前的发现回答我自己的问题。
由于AWS DocumentDB与MongoDB不是100%兼容,因此似乎没有解决方案(根据mongoDB文档,超过66%的DocumentDB正确性测试失败)。此外,要获得AWS对这类不兼容问题的支持是非常困难的,他们总是把你推荐给公共用户论坛。
MongoDB最近发表了一篇博客文章,总结了DocumentDB的不兼容问题,这很有意义。你可以在这里详细阅读-https://www.mongodb.com/atlas-vs-amazon-documentdb/compatibility
我的建议是,如果你正在考虑使用documentDB作为Mongo的替代品,不要麻烦。保存您宝贵的时间,坚持使用MongoDB。

krcsximq

krcsximq3#

在连接中添加[ "retryWrites"=>false]以允许通过php脚本进行写操作并禁用警告添加&authMechanism=SCRAM-SHA-1

$this->mb = new MongoDB\Driver\Manager('mongodb://'.$config_data['mongo_username'].':'.$config_data['mongo_password'].'@'.$config_data['mongo_hostname'], [ "retryWrites"=>false]);

相关问题