Spring Data Mon go - Как запросить Mon go для идентификатора строки - PullRequest
1 голос
/ 13 апреля 2020

У меня есть проекция и групповая запись с использованием Spring Data Mon go, но в тот момент, когда я звоню getMappedResults(), я получаю значение BSON ID, а не String ID, который мне нужен.

Можно ли попросить пн go вернуть идентификатор в виде строки? Я знаю, используя необработанные запросы, я могу назвать что-то вроде $toString:, но как мне сделать это с моей текущей кодовой базой?

final ProjectionOperation dateProjection =
    project()
        .andInclude("_id", "name", "absolutePath")
        .and(dateField)
        .extractYear()
        .as("year");

final GroupOperation groupBy =
    group("year")
        .addToSet(
            new Document("id", "$_id") // How to get the String of the ID here
                .append("name", "$name")
                .append("absolutePath", "$absolutePath"))
        .as("results");

1 Ответ

1 голос
/ 13 апреля 2020

Вы почти там просто нуждаетесь в небольшом изменении в групповом этапе

final GroupOperation groupBy =
        group("year")
            .addToSet(
                new Document("id", new Document("$toString","$_id"))
                    .append("name", "$name")
                    .append("absolutePath", "$absolutePath"))
            .as("results");

Это вернет строковое значение.

...