php 7 mongodb集合插入

时间:2016-11-22 22:35:41

标签: php mongodb

我们安装了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吗?

3 个答案:

答案 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扩展版本,而不是您链接到的库。