Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Morphia同时查询父项和子项_Java_Mongodb_Morphia - Fatal编程技术网

Java 使用Morphia同时查询父项和子项

Java 使用Morphia同时查询父项和子项,java,mongodb,morphia,Java,Mongodb,Morphia,假设我们有两个对象: class Server { ... String location; List<Status> statusList; ... } class Status { ... int code; ... } 类服务器{ ... 字符串位置; 列表状态列表; ... } 阶级地位{ ... int代码; ... } 如何获取具有相同位置的所有服务器的状态列表。例如,如果code==1和location==“

假设我们有两个对象:

class Server {
    ...
    String location;
    List<Status> statusList;
    ...
}

class Status {
    ...
    int code;
    ...
}
类服务器{
...
字符串位置;
列表状态列表;
...
}
阶级地位{
...
int代码;
...
}
如何获取具有相同位置的所有服务器的状态列表。例如,如果
code==1
location==“北京”


如果我想使用createQuery(Server.class)和.filter(),那么输出不能是状态列表

下面的操作不应该对此起作用吗

List<Server> oops = createQuery(Server.class).find("location","Beijing").find("statusList.code", 1).asList();
List oops=createQuery(Server.class).find(“location”,“Beijing”).find(“statusList.code”,1).asList();

Morphia不支持返回这样的不同类型。它将返回创建查询时指定的类型。您可以通过创建带有Status的查询和Server的集合并仅投影Status字段来伪造它。不过,您需要禁用验证

我需要
列表
,但这里是
列表
,您可以在另一个类似的步骤中执行此操作: