繁体   English   中英

如何使用Java Play中的MorphiaQuery从集合中获取所有_id值并将其存储在arraylist中

[英]How to get all _id values from a collection and store them in arraylist using MorphiaQuery in Java Play

我有以下函数应返回“代理”集合中的所有_id值:

public static List<Agency> findByAgencyIds(List<String> ids){
    MorphiaQuery q = Agency.q();
    System.out.println("ids: " + ids);
    q.field("_id").in(ids);    
    return q.asList();
}

以下是使用上一个功能的功能

public static BasicDBObject getQueryAgenciasMultiples(String agency) {
    List<String> agencyIds = new ArrayList<String>(Arrays.asList(agency.split("\\s*,\\s*")));
    List<String> finalList = Lists.newArrayList();
    for (String id : agencyIds) {
        finalList.add(id.trim());
    }
    List<Agency> agencyList = Agency.findByListIds(finalList);

    List<DBRef> dbrefs = new ArrayList();
    agencyList.forEach(a -> dbrefs.add(new DBRef("Agency", a.getId())));                    
    return new BasicDBObject("$in", dbrefs);
}

问题:

该查询未从“代理”中检索_id字段值,因为我不知道如何从MongoDB中检索ObjectId值类型。

因此,我的问题是?如何从“代理商”集合中获取所有_id字段值?

欢迎任何帮助。 在此先感谢您,最好的问候

如果您有一个Query ,则可以对其调用asKeyList()以获取该查询返回的每个实体的_id字段的Key实例的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM