Mongodb:快速列出索引字段的所有值

时间:2014-09-29 20:33:57

标签: mongodb morphia

在mongodb中,我希望能够快速列出所有索引值。对于瞬间,我可以说我有很多FOO的集合:

public class Foo{

   @ID
   private ObjectID id;
   @Indexed
   private List<String> bars;
   @Indexed List<String> bazs;
   ...
}

在bar和baz中可能会有重复,因此迭代foo并查看条形列表效率低下,因为我将花费大部分时间来查看重复。

如果我想快速列出所有条款&#39;不必查看每个Foo对象的值我可以这样做吗?由于它们被索引,因此必须有一个表,其中所有索引都以易于迭代的方式列出。但是,我似乎无法找到mongodb命令来执行此操作?或者更好的是morphia命令,因为我使用java与mongo接口

1 个答案:

答案 0 :(得分:1)

您正在寻找distinct,它也适用于列表/数组。如果索引可用,MongoDB将使用索引。

不幸的是这个功能isn't yet implemented in Morphia,但您可以使用Java驱动程序执行以下操作:

DBCollection c = collection;
List bars = c.distinct("bars");

有关更复杂的示例,请参阅unit test for this feature