如何在num_rows
中获得相当于mongodb
(mysqli)的结果数量?
如果我有
$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;
答案 0 :(得分:5)
像这样,我想:
$collection = $connection->myDB->myCollection;
$cursor = $collection->find(array("email" => $newemail, "password" => $newpass));
$nResults = $cursor->count();
答案 1 :(得分:1)
我相信您使用的是返回MongoCursor,因此您可以使用其方法count来获取行数。
答案 2 :(得分:1)
请注意,count()
不是skip
和limit
的标准。这与PHP中的MySQLi驱动程序略有不同,因为它考虑了LIMIT
。
如果您使用跳过和限制,为了理解真实计数,您将需要实际将光标转换为数组或再次使用count()函数在其签名中提供一个参数:http://www.php.net/manual/en/mongocursor.count.php设置它真实应该只获得实际发现的结果,并考虑到sip和限制。
否则,就像其他人所说的那样,您可以正常使用count
。对于您提供的示例,我可能实际使用findOne
。