2013-04-10 56 views
0

我寫我的劇本在PHP和我嘗試蒙戈COUNT(*)用PHP,但沒有將所有結果數組

SELECT COUNT(*) AS Rank 
FROM user  
WHERE user.lvl > $user_level 

查詢轉換SQL到蒙戈。

我發現只有一個決定:

$nosql = array(
    'lvl' => array('$gt' => $user_level) 
);  
$result = $collection->find($nosql); 
$length = count(iterator_to_array($result)); 
  1. 得到滿足條件
  2. 所有對象,並在PHP盡數

有可能獲得需要的對象的數量不發送所有數組?

回答

2

的MongoDB可以count結果是這樣,你並不需要使用count(iterator_to_array($result));

$nosql = array(
'lvl' => array('$gt' => $user_level) 
);  
$result = $collection->find($nosql); 
$length = $result->count(); 
+0

這是相同的是我寫的「 Topic Post「:我們向MongoDB發送查詢,它返回一個包含對象的looooong數組,然後我們在PHP中計算這個數組元素。 我們只能從Mongo獲得計數嗎?沒有物體本身。附:對不起我的英語不好。 – Oleg 2013-04-10 11:05:34

+0

'$ result-> count();'不是semilar'count(iterator_to_array($ result));'這隻返回計數值。 'print_r($ result);'你可以看到它的計數編號爲 – 2013-04-10 11:11:06

+0

!謝謝! – Oleg 2013-04-10 11:20:02

1

新的驅動程序未實現$cursor->count()使用$collection->count()代替

$collection->count($filter)