「カテゴリ」と「記事」の 2 つのコレクションを含む MongoDb のデータベースがあります。NodeJs で Mongoose を使用してデータベースに接続し、カテゴリを読み取ります。追加のリクエスト/クエリを作成せずにカテゴリの記事数を計算したいので、データベース レベルでこれを解決できれば完璧です。
「カテゴリ」コレクションのアイテムは次のようになります。
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'name': 'Blog posts'
}
「記事」コレクションのアイテムは次のようになります。
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'title': 'Article title',
'published' : '12/09/2012',
...
}
そのため、カテゴリと記事は「feed_id」フィールドを使用してリンクされています。
すべてのカテゴリを対応する数の記事と一緒にエクスポートしたいと思います。
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'name': 'Blog posts',
'no_articles': 4
}
これをどのように正確に行うべきかわかりません:
1)カテゴリ コレクションに「no_articles」フィールドを作成しますか? はいの場合、ドキュメントが記事コレクションに挿入または削除されたときに、これが自動的に更新されるようにしたいと思います。
2)カテゴリが読み取られたときに記事を「no_articles」に合計しますか?
MapReduce とグループについて何か読んだことがありますが、この特定のタスクにそれらを使用できるかどうかはよくわかりませんでした。