我有mongodb运行并使用吗?
拥有BatchData文档的集合,需要过滤掉一些字段值。

这是实体:

@Entity
public class BatchData {

  @Id private ObjectId id;
  public int val1;
  public int val2;
  public String uuid;

}


如果val1等于val2,则查询应返回uuid

到目前为止,但这当然是行不通的:

Query<BatchData> q = mongo.createQuery(BatchData.class).field("val1").equal("val2");
List<BatchData> entities = q.asList();


要么

Query<BatchData> q = mongo.createQuery(BatchData.class).field("val1").equal(BatchData.class.val2)


可能有一百万或更多的BatchData文档,所以我只能
出于性能原因返回uuid

正在阅读维基,无法理解或看到两个成员字段的过滤器
Morphia wiki

最佳答案

如果性能非常重要,则应查看map-reduce函数。不幸的是,morphia不支持此MongoDB功能,因此您需要使用java mongo驱动程序本身。请参见exampledocs

09-11 22:23