使用Mongo存储库

时间:2016-11-16 18:12:28

标签: mongodb aggregation-framework

我在我的项目中使用mongo存储库。我需要使用mongodb的聚合框架,但我无法找到任何有关如何使用mongo存储库进行聚合查询的帮助文档。

我正在使用mongo repository这样的简单查询

@Repository
public interface TaskTypeMongoRepository extends MongoRepository<TaskType,String>{

    @Query(value="{ 'subServiceId' : ?0 }", fields="{ 'title' : 1, 'description' : 1,'expiresOn':1,'taskTypeStatus':1}")
    List <TaskType> findBySubService(Long subServiceId);

    @Query(fields="{ 'title' : 1, 'description' : 1,'expiresOn':1,'taskTypeStatus':1}")
    List<TaskType> findByOrganizationId(long organizationId);

    List <TaskType> findByIdIn(List<String> taskTypeIds);

    TaskType findById(String id);
}

我必须使用此聚合查询

db.task_packages.aggregate([
   {
      $unwind: "$taskTypeIds"
   },
   {
      $lookup:
         {
            from: "taskType",
            localField: "taskTypeIds",
            foreignField: "_id",
            as: "task_types"
        }
   },
{ "$unwind": "$task_types" },
{
        "$group": {
            "_id": "$_id",
       "packageName":{"$first":"$packageName"},
       "task_names": { "$push": "$task_types.title" }
        }
    },
{
        "$project": {
            "packageName": 1,  
            "task_names" : 1
        }
    }
])

我使用模板方法使用聚合查询,但现在不使用如何使用存储库?

0 个答案:

没有答案