Mongo with Spring Data - 在同一查询中使用 Distinct 和 Orderby

Mongo with Spring Data - Use Distinct and Orderby in the same query

我正在处理一些数据集,其 json 下面给出了一个对象的格式。

{
  _id: ............,
   code : G12220,
   type : etf,
   volume : 13,
   modified_time:..................
   .
   .
   .
}

此数据集更新非常频繁(每 1 分钟一次),并且有几千个唯一代码。我想编写一个查询来获取每个最新的不同 "codes" 可用的文档集。例如:如果有两个文档,每个文档都具有相同的代码,则结果应该是最新的。我正在使用 Spring 数据。

我开始编写查询,下面给出的是示例。

@Query("{type : ?0}......")
public List<ProductEntities> getLatestProductsSet(String type); 

我不太确定如何编写复杂的查询。如果您能帮助我,将不胜感激。

提前致谢,

您可能需要查看以下 mongo 查询来实现此目的。

db.collection.aggregate([
    {
        "$group": { 
            "_id": { 
                "code": "$code", 
                "modifiedTime": "$modified_time" 
            },
            "docs": { 
                "$push": "$$ROOT" 
            }
        }
    },
    {
        "$sort": { 
            "_id.modifiedTime": -1 
        }
    },
    {
        "$limit": 1
    }
]);

以下链接可帮助您理解上述查询。

http://docs.mongodb.org/manual/reference/operator/aggregation/group/
http://docs.mongodb.org/manual/reference/operator/aggregation/sort/
http://docs.mongodb.org/manual/reference/operator/aggregation/push/
http://docs.mongodb.org/manual/reference/operator/aggregation/limit/

Spring 部分如下。

http://www.mkyong.com/mongodb/spring-data-mongodb-aggregation-grouping-example/

如果有帮助,请告诉我。