对对象进行分组,然后使用单个查询对这些组进行排序

时间:2018-11-07 13:12:48

标签: mongodb mongodb-query aggregation-framework kmongo

我需要实现一个mongo查询,该查询根据avatarUrl是否为非null形成2个组,然后按lastName对这些组进行排序。

以下是集合的外观:

{
    "lastName": "Bradley",
    "avatarUrl": "http://...",
},
{
    "lastName": "Bradley",
    "avatarUrl": null,
},
{
    "lastName": "Chateau",
    "avatarUrl": null,
}
{
    "lastName": "Ezekiel",
    "avatarUrl": "http://...",
},
{
    "lastName": "Zerox",
    "avatarUrl": "http://...",
}

我需要此查询以返回以下列表:

{
    "lastName": "Bradley",
    "avatarUrl": "http://...",
},
{
    "lastName": "Ezekiel",
    "avatarUrl": "http://...",
},
{
    "lastName": "Zerox",
    "avatarUrl": "http://...",
}
{
    "lastName": "Bradley",
    "avatarUrl": null,
},
{
    "lastName": "Chateau",
    "avatarUrl": null,
}

如您所见,它分为两组,每组按字母顺序排序。

有没有一种方法可以使用单个mongo查询?

我尝试使用这个:

getCollection().find().sort({ "lastName": 1, "avatarUrl": -1}).toList()

但这显然行不通。

0 个答案:

没有答案