Группировать объекты, а затем сортировать эти группы с помощью одного запроса - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно реализовать запрос Монго, который формирует 2 группы в зависимости от того, является ли avatarUrl ненулевым, и затем сортирует эти группы по 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,
}

Как видите, он разбит на две группы, и каждая группа отсортирована в алфавитном порядке.

Есть ли способ сделать это с помощью одного монго-запроса?

Я пытался использовать это:

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

Но это явно не работает.

...