Mongodb:快速列出索引字段的所有值
问题描述:
在mongodb中,我希望能够快速列出所有索引值。对于瞬间可以说我有FOO的众多藏品:Mongodb:快速列出索引字段的所有值
public class Foo{
@ID
private ObjectID id;
@Indexed
private List<String> bars;
@Indexed List<String> bazs;
...
}
有可能是在酒吧和巴兹重复,这样迭代通过不断foo和看着酒吧清单将是低效的,因为我会花大部分的我的时间在重复。
如果我想快速列出所有'bars'的值而不必查看每个Foo对象,我可以这样做吗?由于它们被编入索引,因此必须有一个表格,并且所有索引都以易于重复的方式列出。但是,我似乎无法找到一个mongodb命令来做到这一点?或者更好一个morphia命令,因为我使用java来与mongo进行接口
答
您正在寻找distinct
,它也适用于列表/数组。如果可用的话,MongoDB将使用索引。
不幸的是这个功能isn't yet implemented in Morphia,但你可以做的Java驱动程序如下:
DBCollection c = collection;
List bars = c.distinct("bars");
对于更复杂的例子中看到的unit test for this feature。
这是不同的发生在java端或mongo端?听起来像是java的一面? – dsollen 2014-09-30 12:15:40
Plain MongoDB:http://docs.mongodb.org/manual/reference/method/db.collection.distinct/ – xeraa 2014-09-30 12:25:34