Spring Data (mongo DB) постоянное читаемое значение для атрибута логической сущности - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время я работаю над проектом-прототипом, где мы используем запросы регулярных выражений mongo db к очень ограниченному набору данных, чтобы выполнить «содержащий» поиск для выполнения полнотекстового поиска.Поскольку у нас есть некоторые логические атрибуты в нашей сущности, мы хотели бы сохранить читаемые и, таким образом, доступные для поиска значения String (дополнительные или в качестве альтернативы логическому представлению JSON).

Допустим, моя сущность выглядит примерно так:

public class Foo {
  protected Boolean superPowers;
  protected Boolean evil;
  //some transitive persistence thingy
}

А в Монго ДБ я хочу что-то вроде этого

{
  //omitting things for brevity here
  superPowers: true,
  evil: false,
  description: "Super Hero" 
}

или

{
  //omitting things for brevity here
  superPowers: true,
  evil: true,
  description: "Villain" 
}

в качестве альтернативы на данный момент также было бы нормально иметь его таким образом (чтобы комбинация не оценивалась)

{
  //omitting things for brevity here
  superPowers: "super powers", // if "true"
  evil: "", // if false it is an empty string
}

Спасибо за вашу поддержку!

С уважением,

Thorben

1 Ответ

0 голосов
/ 30 мая 2018

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

@Component
class AugmentingEventListener extends AbstractMongoEventListener<Foo> {

  public void onBeforeSaveEvent(BeforeSaveEvent<Foo> event) {
    // add fields to the document as needed
  }
}

Более подробная информация об этом содержится в нашей справочной документации .

...