对不起,如果这可能是一个典型的“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