我的MongoDB中有2个集合。
Details1(包含对象1和对象2的详细信息)Details2(包含对象2和对象3的详细信息)
java对象本质上是带有Object2列表的Object1。对象3是单独的。
Object1包含一个名为List Object 2的属性,其中包含要链接到另一个集合中的对象3的字段。
目前我的道去…… get object 1遍历列表object 2的内部对象1。使用来自对象2的信息获取对象3。
我需要把它变成一个单一的mongoDB查询。
对象1的DAO=获取对象1:-
Query<FclDetail> query =
this.createQuery()
.field(GROUP_ACCOUNT_NO).equal(requestData.getGroupAccountNo())
.field(OFFICE_ID).equal(requestData.getOfficeId())
.field(AC_SYS_ID).equal(requestData.getAcSysId());
服务:-
FclDetail fclDetail = fclDao.getFclDetails(request.getRequestData());
FundIfchFacility fundIfchFacility = serviceMapper.map(fclDetail);
fundIfchFacility.getBsLmStructureNodeList().parallelStream().forEach((bsLmStructureNode) -> {
FclCliDetail fclCliDetail = fclCliDetailDao.getFclCliDetails(bsLmStructureNode.getNodeInstanceId(),bsLmStructureNode.getStructureCode());}
第二DAO电话:-
Query<FclCliDetail> query = this.createQuery()
.field(STRUCTURE_CODE)
.equal(strCde)
.field(NODE_INSTANCE_ID)
.equal(ndeItaId);
如何展开或合并这两个查询以使其查找对象……找到对象……遍历对象内部的列表……然后使用这些对象的附加信息查找其他集合。
考虑使用带有$查找的聚合。