tl;dr
Bude potřebovat vlastní implementace pro úložiště a řadič.
Podrobnosti
Musíme se ujistit, že se neztratíme ve všech různých aspektech, které zde zmiňujete. Zkusím rozmotat větve zdola nahoru:
Spouštění skriptů MongoDB
Jako referenční dokumentace o spouštění skriptů pomocí MongoDB
uvádí (a vy jste již objevili), funkci poskytuje by MongoTemplate
's ScriptOperations
. Proto by mělo být jasné, jak toto API používat. Další informace naleznete v Javadoc.
Provádění skriptů prostřednictvím úložišť Spring Data
Další věc, kterou požadujete, je spouštění těchto skriptů prostřednictvím abstrakce úložiště. Abychom zde nevyhodili dítě s vodou z koupele, ujistěte se, že rozumíme účelu úložiště:simuluje sbírku agregovaných kořenů a přístup k nim aniž by odhaloval základní mechanismus perzistence . Zpřístupnění typů jako ExecutableMongoScript
na úložišti by porušila poslední vlastnost. Správným přístupem je tedy vytvořit vlastní implementaci pro tuto konkrétní funkci, jak je popsáno v referenční dokumentace k úložištím Spring Data
.
Odhalení funkcí prostřednictvím REST
Předpokládám, že odkazujete na funkci Spring Data REST, abyste ve své otázce odhalili vyhrazený zdroj pro metodu dotazu na úložiště. Spring Data REST v současné době odhaluje pouze deklarativní metody dotazů automaticky, většinou z toho důvodu, že je těžké uvažovat o správné metodě HTTP pro podporu vlastních implementací, protože nemůžeme odhadnout, co se uvnitř metody děje.
Doporučený způsob, jak odhalit vlastní metody dotazů na úložiště pomocí vlastního řadiče s @RequestMapping
vyhovující vašemu účelu, volání úložiště a použití PersistentEntityResourceAssembler
injektovatelné do metody handler, aby se vytvořil PersistentEntityResource
vrátit se.