tl;dr
Det kommer att behöva anpassade implementeringar för arkivet och styrenheten.
Detaljer
Vi måste se till att vi inte går vilse i alla de olika aspekterna du nämner här. Jag ska försöka reda ut grenarna nerifrån och upp:
Kör MongoDB-skript
Som referensdokumentation om exekvering av skript med MongoDB
tillstånd (och du redan upptäckt), tillhandahålls funktionen by MongoTemplate
s ScriptOperations
. Så hur man använder det API bör vara tydligt. Konsultera Javadoc för mer information.
Exekvera skript via Spring Data-arkiv
Nästa sak du ber om är att köra dessa skript genom förvarsabstraktionen. För att inte kasta ut barnet med badvattnet här, se till att vi förstår syftet med ett förvar:det simulerar en samling av samlade rötter och tillgång till det utan att exponera den underliggande beständighetsmekanismen . Exponeringstyper som ExecutableMongoScript
på förvaret skulle bryta den senare egenskapen. Det korrekta tillvägagångssättet här är alltså att skapa en anpassad implementering för just den funktionaliteten som beskrivs i referensdokumentation om Spring Data-förråd
.
Exponera funktionaliteten via REST
Jag antar att du hänvisar till Spring Data RESTs funktion för att exponera en dedikerad resurs för förvarsfrågemetoden i din fråga. Spring Data REST exponerar för närvarande endast deklarativa frågemetoder automatiskt, mestadels av den anledningen att det är svårt att resonera kring rätt HTTP-metod för att stödja anpassade implementeringar eftersom vi inte kan gissa vad som händer i metoden.
Det rekommenderade sättet att exponera anpassade förvarsfrågemetoder med hjälp av en anpassad kontroller med en @RequestMapping
som passar ditt syfte, anropa arkivet och använda en PersistentEntityResourceAssembler
injicerbar i hanterarmetoden för att producera en PersistentEntityResource
för att återvända.