我想迭代给定文档中的不同字段列表。使用MongoDB命令行,我可以类型通过执行以下操作获得我想要的东西:
db.MyDoc.distinct("someField")
...除了它将所有结果作为巨型BSON返回。
有没有办法在Morphia中执行此操作,并进一步将其作为Iterable
返回,以便所有结果不会一次性读入内存中?
我认为distinct()
是作为某种内存中的hashmap实现的,这可能意味着我试图在结果中逐个迭代以避免将它们全部存储在内存中没有意义。
答案 0 :(得分:3)
即使morphia支持这种情况,但distinct的结果仍然是单个(bson)文档,其结果字段具有不同值的数组。它基本上必须完全读入内存。
答案 1 :(得分:2)