MongoDB と 10Gen node.js ドライバーを使用しています。
MongoDB にコレクションがあり、次のようなドキュメントがあります。
{
_id: ObjectId( "500310affdc47af710000001" ),
name:'something',
tags:['apple','fruit','red'],
created: Date( 1342378221351 )
}
私が取得したいのは、すべてのドキュメントを見て、コレクション内のすべてのドキュメントのすべてのタグの個別の数を取得することです。グループ機能を試してみたところ、次のようになりました。
> db.photos.group(
... {cond:{}
... ,key:{tags:true}
... ,initial:{count:0}
... ,reduce:function(doc,out){out.count++}
... ,finalize:function(out){}});
[
{
"tags" : null,
"count" : 35
},
{
"tags" : [
"#strawberry",
"#friutpicture"
],
"count" : 1
}
]
これは正しくありません。次のように、カウントなしで明確に取得できます。
> db.photos.distinct('tags')
[
"#friutpicture",
"#strawberry",
"#factory",
"#wallpaper",
"#bummber",
"#test",
"#fire",
"#watermark"
]
しかし、私はカウントが必要です。