2012-08-23 49 views
3

我如何獲得結果數量,等於num_rows(mysqli)在mongodb
mongodb num_rows等效php

如果我有

$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; 

回答

5

這個樣子,我想:

$collection = $connection->myDB->myCollection; 
$cursor = $collection->find(array("email" => $newemail, "password" => $newpass)); 
$nResults = $cursor->count(); 
1

我相信你使用的是什麼回報MongoCursor所以你可以使用它的方法count獲得數的行。

1

請注意,count()不是skiplimit的標準。這與PHP中的MySQLi驅動程序略有不同,因爲考慮到LIMIT

爲了理解真正的計數,如果您使用跳過和限制,您將需要實際將光標轉換爲數組或使用count()函數再次提供其簽名中的參數:http://www.php.net/manual/en/mongocursor.count.php將其設置爲true 應該得到你只有實際發現的結果考慮到啜飲和限制。

否則,就像其他人所說的那樣,您可以像平常一樣使用count。對於你提供的例子,我可能實際上使用findOne

+0

wouldnt'findOne'調出符合條件的第一項? –

+0

@tq你應該只有一個人的電子郵件和密碼...應該 – Sammaye

+0

是的,但如果有重複的電子郵件,我會'返回false' –