如何在morphia和mongodb中通过外键(dbref)查找记录?

时间:2013-12-18 16:51:49

标签: java mongodb morphia dbref

我有以下实体:

class Linf {
     @Id
     ObjectId id;
     @Reference
     Denied denied;
}

我想找到所有具有某个id的Denied对象的Linfs。我怎样才能做到这一点?这个查询会使用索引吗?如果可能,我想避免全面扫描。

感谢名单。

2 个答案:

答案 0 :(得分:0)

如果您没有“拒绝”索引,那么无论如何都会进行完整的收集扫描,但是这样的事情应该为您完成:

datastore.createQuery(Linf.class).field("denied").equal(new Key<Denied>(Denied.class, id)).fetch()

答案 1 :(得分:0)

这对我有用:

    Denied d2 = new Denied();
    d2.id = new ObjectId("52b4709f423d856472c34fa1");

    List list = datastore
            .createQuery(Linf.class)
            .field("denied")
            .equal(d2).asList();