對不起,如果這可能是一個典型的「RTM」 - 問題,我是新來的MongoDB,並做了一些手動閱讀,但很遺憾,我沒有找到一個嘗試解決這個問題。MongoDB:「查找()」與外鍵到不同的集合
我有兩個集合,一個集合是「articles」,其中包含一個「categories」數組,其中包含一個或多個MongoID對象,其ID爲我的類別集合。
我想顯示所有類別與指向該類別的文章數量。下面我的解決辦法,我發現atfer研發的一段時間:
我收藏的類別:
Array
(
[_id] => MongoId Object
(
[$id] => 54eb1510974f5590179702aa
)
[name] => Test
[multiplier] => 2
)
我的文章收集:
Array
(
[_id] => MongoId Object
(
[$id] => 54e5e39f974f5535248b4bdf
)
[productnumber] => 63483
[categories] => Array
(
//... other categories...
[1] => MongoId Object
(
[$id] => 54eb1510974f5590179702aa
)
)
[image] => /var/www/mongodbtest/Files/FTP/images/63483.jpg
)
我當前的PHP代碼:
foreach($oAllCategories as $oCategory)
{
$iArticleCount = $oArticles->find(array('categories' => $oCategory['_id']))->count();
// Debug
echo $oCategory['name'].' = '.$iArticleCount.' <br />';
}
現在的問題是,有70'000篇文章和2'200類別,這是緩慢的,需要很多的時間。此外,我無法按照文章數量對我的分類進行分類,也無法遍歷所有文章。
有沒有更好的方法來做到這一點?
非常感謝。即使這不是真正「我想聽到的」,它似乎是唯一正確的信息,因爲JOIN可以解決問題,但它們不在MongoDB中。我會用你的建議來實施一個計數器。感謝您的時間和信息。 – 2015-02-25 09:25:45