Spring Boot和Mongo-聚合以匹配另一个集合中的ID

时间:2019-10-29 07:41:06

标签: spring mongodb spring-boot kotlin

我一直在使用Spring Boot和Mongo来运行查询-就像这样:

val query = Query()

query.with(Sort.by(options.sortDirection, options.sortBy))
query.limit(options.limit.toInt()).skip(options.skip.toLong())

val results =  mongoTemplate.find(query, Series::class.java)

无论如何,我现在要处理场景问题,在上述results中,我还获得了一组体裁ID。我需要查找这个ID数组,并从第二个集合中找到匹配的文档。

因此,我已经阅读了有关聚合的内容,看来应该使用它来进行此操作-但是,阅读后我仍然不确定。

因此,基础知识直截了当:

val sortStage = Aggregation.sort(options.sortDirection, options.sortBy)
val limitStage = Aggregation.limit(options.limit)
val skipStage = Aggregation.skip(options.skip)

val aggregation = Aggregation.newAggregation(sortStage, limitStage, skipStage)

val result = mongoTemplate.aggregate(aggregation, "series", Series::class.java)

但是,如何在名为genres的集合中添加对ID数组的搜索?其中包含idname。我看过查找,但是看不到如何对数组运行-如该问题的重复部分所述:

val getSubGenreNames = Aggregation.lookup("genres", "genres", "id", "sgName")

它是我要获取的名称部分,并在结果中以genres的形式返回。

任何帮助都会得到帮助。

谢谢。

0 个答案:

没有答案