3

我怎样才能得到结果的数量,相当于num_rows(mysqli) in mongodb

如果我有

$db->$dbName->find(array("email" => $newemail, "password" => $newpass));

检查符合此标准的结果数量的最佳方法是什么?

在 mysqli 我会做类似的事情

$sql = "SELECT id FROM table WHERE email='%s' AND password='%s'";
$query = sprintf($sql, $newemail, $newpass);
$result = $conn->query($query);
$rows = $result->num_rows;
4

3 回答 3

5

像这样,我认为:

$collection = $connection->myDB->myCollection;
$cursor = $collection->find(array("email" => $newemail, "password" => $newpass));
$nResults = $cursor->count();
于 2012-08-23T19:34:46.933 回答
1

我相信你正在使用的返回一个 MongoCursor 所以你可以使用它的方法count来获取行数。

于 2012-08-23T19:35:44.810 回答
1

请注意,count()是标准而不是skiplimit。这与 PHP 中的 MySQLi 驱动程序略有不同,因为它考虑了这一点LIMIT

如果您使用跳过和限制,为了了解真实计数,您将需要将光标实际转换为数组或再次使用 count() 函数在其签名中提供参数:http ://www.php.net /manual/en/mongocursor.count.php将其设置为 true应该只会让你得到那些实际发现的结果,考虑到 sip 和 limit。

否则,对于您的示例,正​​如其他人所说,您可以count正常使用。对于您提供的示例,我可能实际上会使用findOne.

于 2012-08-23T21:08:24.720 回答