MongoDB and OAK integration



The question is:


I plan to create a MongoDB database which will store information that is obtained from an external API. I need to integrate this MongoDB database with my AEM project in such a way that I can generate OAK indexes that will be obtained from that database, this in order to create a search in my AEM project. I have reviewed the following documentation:


I understand that OAK indexes the content stored in my project's repository. Is there a way to store external content in the repository? If this option is possible it could save me having to integrate from MongoDB.

Screenshot from 2020-05-20 13-27-35.png


I look forward to your comments, thank you.

Answers (2)

Answers (2)




If I understand you correctly, you want some application approaching directly the MongoDB and that this content then shows up in AEM/Oak and is reachable through its API.


This is not possible, because Oak does not know of the documents you added outside of its control to the MongoDB. Therefor it will never show up in the indexes. If you want to content to be indexed within Oak, you need to insert into the repository by regular means (Oak/Sling APIs).







Does it mean that you've installed AEM on TarMK and you want to use a MongoMK to store project's data?

What is the use case of such a complex deployment? 

To make it happened you need to implement a MongoDB connector like to an external DB. I don't think we have any sample, but you can get an idea from

In that case, you would have to define Mongo indexes and Mongo queries.

Note that you can have either MongoMK or TarMK, but not a mix.

MongoMK is recommended with over 100 concurrent user's connections to an AEM. If you don't have such a high load, you can easily employ a TarMK.