我一直在使用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数组的搜索?其中包含id
和name
。我看过查找,但是看不到如何对数组运行-如该问题的重复部分所述:
val getSubGenreNames = Aggregation.lookup("genres", "genres", "id", "sgName")
它是我要获取的名称部分,并在结果中以genres
的形式返回。
任何帮助都会得到帮助。
谢谢。