Преобразовать _id (ObjectId) в строку в агрегировании для поиска Spring bootJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Преобразовать _id (ObjectId) в строку в агрегировании для поиска Spring boot

Сообщение Anonymous »

ЭТО НЕ ВОПРОС
У меня долгое время была проблема с преобразованием objectId в строку при весенней агрегации загрузки, и я не могу найти ничего полезного способ ее решения.
Наконец-то я понял и хотел бы поделиться своим способом с теми, у кого такая же проблема;
Как вы знаете, для поиска нужны две стороны поиска с одинаковым значением, например, два стороны objectId или двухсторонняя строка
если у вас есть objecteId и строка на другой стороне, вам нужно преобразовать этот objectId в строку, а затем написать этап поиска;
этап перед поиском должен быть этапом проекта с использованием Выражение $toString, подобное приведенному ниже:

Код: Выделить всё

ProjectionOperation projectionOperation = Aggregation.project(/*your nedded fields */)
.and(ConvertOperators.ToString.toString("$_id)).as("aggId");
и затем вы можете легко использовать поиск, как показано ниже:

Код: Выделить всё

Aggregation agg = Aggregation.newAggregation(
Aggregation.match(
Criteria.where("cratorId").is(userId)
)
,
projectionOperation
,
Aggregation.lookup("post", "aggId", "courseId", "postList"),
Моя полная агрегация:

Код: Выделить всё

ProjectionOperation projectionOperation = Aggregation.project(/*your nedded fields */)
.and(ConvertOperators.ToString.toString("$_id")).as("aggId");

Aggregation agg = Aggregation.newAggregation(
Aggregation.match(
Criteria.where("creatorId").is(userId)
)
,
projectionOperation
,
Aggregation.lookup("post", "aggId", "courseId", "postList")
);

return this.aggregate(agg, entityClass, Object.class).getMappedResults();
надеюсь, это может быть полезно

Подробнее здесь: https://stackoverflow.com/questions/640 ... pring-boot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать ObjectId в строку в кадре данных pandas
    Anonymous » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Расхождения в агрегировании данных о калориях с использованием HealthConnect API
    Anonymous » » в форуме Android
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • В фильтре полярностей Python и агрегировании списков
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Добавьте столбец даты для каждого файла с помощью Polars при агрегировании нескольких файлов Parquet.
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Невозможно десериализовать строку из BsonType ObjectId в MongoDb C#
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»