如何使用mongodb,php驱动程序获取受影响的行数

时间:2011-03-17 01:50:22

标签: mongodb

我有两个问题:如何通过php mongodb驱动程序获取受影响的行,以及最后一个插入ID如何?谢谢。

5 个答案:

答案 0 :(得分:4)

我不相信mongodb可以使用任何类型的affected_rows()方法。至于最后一个插入_id您可以在应用程序代码中生成它们并将它们包含在插入中,因此实际上不需要像insert_id()方法那样的任何mysql。

$id = new MongoId();
$collection->insert(array('
    '_id' => $id,
    'username' => 'username',
    'email' => 'johndoe@gmail.com'
'));

现在您可以根据需要使用$ id中存储的对象。

答案 1 :(得分:4)

您可以使用计数功能直接从光标获得结果数:

$collection->find()->count();

您甚至可以使用以下方式获取集合中所有记录的数量:

$collection->count();

使用insert方法,_id会自动添加到输入数组中。

$a = array('x' => 1);
$collection->insert($a,array('safe'=>true));
var_dump($a);

array(2) {
  ["x"]=>
    int(1)
  ["_id"]=>
    object(MongoId)#4 (0) {
    }
  }

答案 2 :(得分:2)

也许 MongoDB :: lastError 正在寻找: (http://php.net/manual/en/mongodb.lasterror.php

它调用 getLastError 命令: (http://www.mongodb.org/display/DOCS/getLastError+Command

返回,其中包括:

  

n - 如果更新完成,则这是更新的文档数。

答案 3 :(得分:0)

对于受影响的行数:

        $status = $collection->update( $criteria, array( '$set' => $data ) );
        $status['n']; // 'n' is the number of affected rows

答案 4 :(得分:0)

如果您有动作的输出,则可以调用相对函数:

//        $m hold mongo library object
$output    = $m->myCollection->updateOne([
    '_id' => myMongoCreateID('56ce2e90c9c037dba19c3ce1')], [
    '$set' => ['column' => 'value']
]);
// get number of modified records
$count     = $output->getModifiedCount();

$ output的类型为MongoDB\UpdateResult。相对检查以下文件,找出找到所需内容,删除,匹配或任何结果的最佳函数: