从mongoDB集合中提取不同的Fields值

时间:2013-05-14 12:15:10

标签: mongodb-query

我对mongodb很新,我遇到了一个简单(或没有)的问题:

我有一系列标记产品,如下所示:

{ "_id": "1", "tags": { "shape" : [ "shape1","shape2" ], "color": [ "col1","col2" ] },
{ "_id": "2", "tags": { "shape" : [ "shape3","shape4" ], "color": [ "col3","col4" ] },
{ "_id": "3", "tags": { "otherCategory" : [ "value1" ], "color": [ "col5","col6" ] }

我想从此集合中选择所有不同的类别,并得到以下结果:

[ "shape", "OtherCategory" ]

我怎样才能实现这一点?现在似乎我唯一的选择就是找到所有标签并在java客户端中手动解析它......看起来很糟糕; - )

我从java spring客户端查询mongodb。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

好的,所以我最终得到了重构我的模型:如果没有像Konstantin那样做一些Map / reduce,对文档内容进行查询似乎并不容易。

为了解决这个问题,我创建了一个新的类别集合,以便我可以轻松地选择它们。插入产品时会填充此集合。