我们安装了php mongo ext,然后也设置了作曲家。
https://github.com/alcaeus/mongo-php-adapter
在我的PHP代码中我是这样的:
require_once 'vendor/autoload.php';
$m = new MongoDB\Client("mongodb://host1,host2", array ('replicaSet' => 'host-set-01'));
$document = array(....);
$db->mycollection->insert($document);
它返回了这个错误:
PHP致命错误:未捕获错误:调用未定义的方法MongoDB \ Collection :: insert()
但是在适配器的文件夹中,我确实在集合类Mongo / MongoCollection.php中看到insert()
任何人都使用mongodb / adapter吗?
答案 0 :(得分:2)
尝试使用insertMany()
或{{1}}代替!
答案 1 :(得分:1)
这可能会对您有所帮助:
$mongo = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $bulk = new MongoDB\Driver\BulkWrite; $doc = array( 'id' => new MongoDB\BSON\ObjectID, #Generate MongoID 'name' => 'harry', 'age' => 14, 'roll_no' => 1 ); $bulk->insert($doc); $mongo->executeBulkWrite('schooldb.student', $bulk); # 'schooldb' is database and 'student' is collection.
此处通过使用BulkWriter,您可以使用一个或多个文档执行插入,更新和删除操作。
答案 2 :(得分:0)
您链接到\MongoClient
)的库中的客户端是MongoDB\Client
,而不是Mongo/MongoCollection.php
。
\MongoCollection
班级为MongoDB\Collection
,而不是student
,如您的错误所示。
我认为您正在尝试使用Mongo的PHP扩展版本,而不是您链接到的库。