MongoDb查询 - 聚合,组,过滤器,最大值

时间:2017-07-27 15:28:20

标签: mongodb mongodb-query

我试图找出具体的mongoDb查询,到目前为止还没有成功。

我的集合中的文档看起来像这样(包含更多属性,与此查询无关):

[{
    "_id": ObjectId("596e01b6f4f7cf137cb3d096"),
    "code": "A",
    "name": "name1",
    "sys": {
        "cts": ISODate("2017-07-18T12:40:22.772Z"),
    }
}, 
{
    "_id": ObjectId("596e01b6f4f7cf137cb3d097"),
    "code": "A",
    "name": "name2",
    "sys": {
        "cts": ISODate("2017-07-19T12:40:22.772Z"),
    }
}, 
{
    "_id": ObjectId("596e01b6f4f7cf137cb3d098"),
    "code": "B",
    "name": "name3",
    "sys": {
        "cts": ISODate("2017-07-16T12:40:22.772Z"),
    }
}, 
{
    "_id": ObjectId("596e01b6f4f7cf137cb3d099"),
    "code": "B",
    "name": "name3",
    "sys": {
        "cts": ISODate("2017-07-10T12:40:22.772Z"),
    }
}]

我需要的是获取当前版本的文档,按代码或名称或两者进行过滤。当前版本意味着来自两个(或更多)具有相同代码的文档,我想选择具有最新sys.cts日期值的文档。

因此,使用过滤器名称=“name3”执行此查询的结果将是上一个列表中的第三个文档。没有任何过滤器的查询结果将是第2和第3个文档。

我知道如何使用更改的数据模型构建此查询,但我希望有人可以在没有这样做的情况下引导我。 谢谢

0 个答案:

没有答案