Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 Mongo查询另一个嵌套对象中的嵌套对象_Java_Mongodb - Fatal编程技术网

Java Mongo查询另一个嵌套对象中的嵌套对象

Java Mongo查询另一个嵌套对象中的嵌套对象,java,mongodb,Java,Mongodb,我对MongoDb数据库的员工、部门和主题有几个类,关系如下 public class Employee { @Id private long id; private String name; @DBRef private Subject subject; } public class subject{ @Id private long id; private String name; @DBRef private Department department; } p

我对MongoDb数据库的员工、部门和主题有几个类,关系如下

public class Employee {
 @Id
 private long id;
 private String name;
 @DBRef
 private Subject subject;
} 

public class subject{
 @Id 
 private long id;
 private String name;
 @DBRef
 private Department department;
}

public class Department{
 @Id     
 private long id;
 private String name;
}
我可以使用主题Id查询员工

db.employee.find("subject.$id":<subjectId>)

提前感谢

您能否共享MongoDB中显示的一些对象,即Json?如果您使用的是Mongo3.2,那么您有内置的连接操作-但是您确定您的数据模型非常适合MongoDB吗?在Mongo中,通常最好将数据建模为非规范化文档,这样就不需要连接。
db.employee.find("subject.department.$id":<departmentId>)
Employee ::

{"_id": 1,"name":"student1","subject":{"$ref":"subject","$id":1}}
{"_id": 2,"name":"student2","subject":{"$ref":"subject","$id":2}}
{"_id": 3,"name":"student3","subject":{"$ref":"subject","$id":3}}

Subject ::
{"_id": 1,"name":"subject1","department":{"$ref":"department","$id":1}}
{"_id": 2,"name":"subject2","department":{"$ref":"department","$id":1}}
{"_id": 3,"name":"subject3","department":{"$ref":"department","$id":2}}

Department ::

{"_id": 1,"name":"department1"}
{"_id": 2,"name":"department2"}