范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

MongoTemplate聚合lookup

  在用 lookup做关联表查询时要注册两种情况,关联的字段类型是否一致
  分类模型 相同import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; //分类模型 @Data @Document("category") public class Category {     @Id     private String id;     private String name; }
  第一种//商品模型 import lombok.Data; import org.bson.types.ObjectId; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document;  @Data @Document("product") public class Product {      @Id     private String id;     private String name;     // 注意,这里用的是 ObjectId     private ObjectId categoryId; }
  这种网络上有很多教程直接上代码List operationList = new ArrayList();                 LookupOperation lookup = LookupOperation.newLookup()           // 从表的表名                 .from("category")           //主表中要关联的字段           .localField("categoryId")           //从表中要关联的字段           .foreignField("_id")           //临时集合别名           .as("categoryData");          operationList.add(lookup);          //方便测试只查一条数据         AggregationOperation match = Aggregation.match(                 Criteria.where("_id").is( new ObjectId("6262616806216427cf9345fc") )         );         operationList.add(match);          Aggregation agg = Aggregation.newAggregation(operationList);         //主表表名         AggregationResults aggregationResults = mongoTemplate.aggregate(agg, "product", Map.class);                  //结果         System.out.println(aggregationResults.getMappedResults());
  第二种import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; //商品模型 @Data @Document("product") public class Product {      @Id     private String id;     private String name;     // 注意,这里用的是 String     private String categoryId; }
  这里的商品中的分类categoryId 类型为String 而分类中的id为 ObjectId。
  当用mongoTemplate中的Lookup做关联查询时 要对categoryId做类型转换List operationList = new ArrayList();         //关键,在这里对 categoryId做类型转换          //目前测试 主表字段转类型成功 从表类型失败         AddFieldsOperation addFields = AddFieldsOperation.addField("categoryId").withValue(ConvertOperators.ToObjectId.toObjectId("$categoryId")).build();                  LookupOperation lookup = LookupOperation.newLookup()           // 从表的表名                 .from("category")           //主表中要关联的字段           .localField("categoryId")           //从表中要关联的字段           .foreignField("_id")           //临时集合别名           .as("categoryData");          operationList.add(addFields);         operationList.add(lookup);          //方便测试只查一条数据         AggregationOperation match = Aggregation.match(                 Criteria.where("_id").is( new ObjectId("6262616806216427cf9345fc") )         );         operationList.add(match);          Aggregation agg = Aggregation.newAggregation(operationList);         //主表表名         AggregationResults aggregationResults = mongoTemplate.aggregate(agg, "product", Map.class);                  //结果         System.out.println(aggregationResults.getMappedResults());

华为MateStationB520商用台式机发布完善商用PC市场布局9月13日,华为商用台式机MateStationB520正式发布。华为在商用PC市场进一步完善笔记本台式机的全矩阵技术升级,这款商用台式机的推出也让华为商用终端实现了一整套智慧办公华为余承东鸿蒙系统用户突破1亿!谁也没料到,打脸来得如此快点击关注,每天精彩不断!导读华为余承东鸿蒙系统用户突破1亿!谁也没料到,打脸来得如此快!在最近这几年,随着我国华为公司被打压以后,国内科技企业的发展也开始出现了一个全新的变化,不少软件开发前景好吗?作为一名IT行业的从业者,同时也是一名教育工作者,我来回答一下这个问题。首先,当前学习软件开发是不错选择,一方面软件开发岗位的人才需求量依然比较大,另一方面随着产业结构升级的持续推阿里性侵案反转?强制猥亵罪与诬告罪之争9月,备受关注阿里高管性侵女员工一案又有了新的进展。9月6日,济南市槐荫区人民检察院进行通报经依法审查,犯罪嫌疑人王某文实施的强制猥亵行为不构成犯罪,不批准逮捕。随后,济南市槐荫分海尔小海贝的质量怎么样?质量挺好的,我家就买了台小海贝的洗碗机,对于我这种独居人士来说刚刚好,用了有一两个月了,没有任何问题,清洁力也足够,洗的碗比我自己手洗的强多了,而且还省时间,以前因为不想洗碗干脆连思科和华为现在在国内的竞争到底怎么样了,趋势如何?作为一个曾经的专业人士,这个问题我应该可以回答的比较清楚。首先,这个问题我们需要先分别看看国内的运营商市场和企业网市场,看看这两个市场中思科和华为的竞争表现如何由于思科和华为主要在ipadmini新款买64G的还是256G内存的好?表示必须要蜂窝版?感谢您的阅读!iPadmini5确实让我们有点惊吓,不错,是惊吓,不是惊讶!因为苹果这一次竟然2999元A12的组合,着实是主打性价比。看来这次,国产平将遭受很长一段时间的寒冬。我智能循迹,解放双手?是爆火的自行车,也是新款XC60自动驾驶是未来交通的必然趋势,这一点应该已经毋庸置疑。最好的证明就是前不久在各大平台火到出圈的大神自制无人驾驶自行车。从零开始,这位达人一步步打造出了一台有着完善算法系统以及成熟硬12345是什么热线?12345政务服务热线是市民向政府表达诉求的重要渠道,是政府与广大公众沟通互动的重要平台,也是优化经济发展环境提升城市核心竞争力的重要保障。但是12345政务服务热线是有办理时间的威马W6除了续航长,还有其他优势吗?去店里看过威马W6这款车,给我的印象就是这款车各方面都很均衡,几乎没有什么明显的软肋,而且在自动驾驶上优势明显。整体感觉威马W6内饰豪华空间大安全性也不错,很符合家用车的定位。还配嵌入式洗碗机厨改麻烦吗?还好吧,我家的和闺蜜家的都不是特别麻烦,自家用的是海尔的,闺蜜家的是卡萨帝的,厨改的问题他们的服务人员就一手包办了,根本不用多操心,而且设计方案还有安装什么的都非常专业,整体效果非
雷军朋友圈回应谣言刘德华遭索赔近1亿元商业参考NEWS今日要闻雷军朋友圈回应谣言刘德华遭索赔近1亿元B站超优酷成国内第三大视频网站软银回应将暂停对中国投资百事可乐推出酒精饮料万科回应入股恒大物业传言晶泰科技获4亿美元D轮融资特中国AI创业企业如何摆脱飘忽不定的魔咒中宏网8月11日电AI是当下的一个热门话题。AI是什么,它是人工智能英文单词的缩写。这个单词背后蕴藏着人类发展中无限的想象力。很多人对这个概念的第一印象是科技感十足,任何行业一旦贴一加美国公布折叠屏手机真相原来是一加9半价促销IT之家8月12日消息8月11日,一加美国官方账号发布了一段视频,展现了一款折叠屏手机。这款手机采用左右折叠的设计,两块屏幕中播放有太空星云的动画。手机左右屏幕为分离式设计,背部具10年时间,美国要占据50以上电动车市场,中企技术才是关键美国虽然是这世界上的一大强国,但并不代表它在任何领域都是独占优势的,如今它有了新的发展目标,要在十年的时间里,占据50以上的电动车市场,但就目前的情况来看,如果想要实现这一目标,势宁德时代推出钠离子电池PK比亚迪锂电池,曾毓群能否击败王传福?为什么要击败?两个国产都发扬光大不好么?为什么要窝里斗?联合起来占领国际市场不香么??这不能说谁击败谁,宁德时代推出钠离子电池,比亚迪也会推出它的新产品,科技是日新月异,你追我赶,你们电脑上都用什么软件管理啊?为你推荐最牛最好用的软件,只要你用了我推荐的软件,保你用了后,开心快乐!我用的系统是win10杀毒软件用的是火绒安全(弹窗广告无影踪)压缩软件bandizip(速度超级快)文字编辑长乐出过哪些名人?长乐宝地,人杰地灵,名传古今中外的名人数不胜数。下面列举的名人皆孕育于长乐宝地,将自己的成就与作品,奉献给全国乃至全世界,他们在各领域取得的优异成绩,令人羡煞,他们高尚的精神更是永oppo和vivo手机的返修率怎么样?你这是为了黑为黑吧!纵观目前整个智能手机市场,还没有任何一个市场调研机构说OPPO和vivo手机的返修率高的。相反的,在各家的市场调研机构中都有表示出OPPO和vivo这两家手机的小米5X发布了,买完OPPOR11的你们后悔了吗?对于这个问题,客观的阐述一下自己的观点。小米向来以高性价比著称,受到不少人的喜欢。那么小米5X和OPPOR11相比各有各的优点。笔者阐述下自己的观点。使用小米和使用OPPO属于个人如何看盘?看盘有什么技巧?看盘又称为盯盘,炒股的人都会看盘,但有的只是看大盘,有的只是看几只个股,有的会去热点板块寻找机会。。无论如何,如果只跟踪指数和个股的涨跌,必然会制约投资者把握稍纵即逝的逐利避险的机独角兽概念是什么意思?到底什么才叫独角兽呢?独角兽(unicorn)是西方神话中的神兽,代表高贵高傲和纯洁。是一种吉祥之物。美国著名投资人Lee将估值达到10亿美元以上并且创办时间相对较短的公司称之为独角兽公司。首创独角兽概