在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接口
答案 0 :(得分:1)
您正在寻找distinct
,它也适用于列表/数组。如果索引可用,MongoDB将使用索引。
不幸的是这个功能isn't yet implemented in Morphia,但您可以使用Java驱动程序执行以下操作:
DBCollection c = collection;
List bars = c.distinct("bars");
有关更复杂的示例,请参阅unit test for this feature。