MongoDB and OAK integration | Community
Skip to main content
May 20, 2020
Solved

MongoDB and OAK integration

  • May 20, 2020
  • 3 replies
  • 7156 views

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:

 

https://docs.adobe.com/content/help/en/experience-manager-65/deploying/deploying/queries-and-indexing.html

https://docs.adobe.com/content/help/en/experience-manager-65/deploying/practices/best-practices-for-queries-and-indexing.html

https://jackrabbit.apache.org/oak/docs/query/query.html

 

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.

 

I look forward to your comments, thank you.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by sunjot16

You can make use of Document Node Store(which is the basis for AEM's MongoMK implementation).

https://docs.adobe.com/content/help/en/experience-manager-65/deploying/deploying/data-store-config.html

 

The deployment guide stating how to deploy AEM with MongoDB:

https://docs.adobe.com/content/help/en/experience-manager-64/deploying/introduction/aem-with-mongodb.html

 

 

Hope these help !!

3 replies

sunjot16
Adobe Employee
sunjot16Adobe EmployeeAccepted solution
Adobe Employee
May 20, 2020

You can make use of Document Node Store(which is the basis for AEM's MongoMK implementation).

https://docs.adobe.com/content/help/en/experience-manager-65/deploying/deploying/data-store-config.html

 

The deployment guide stating how to deploy AEM with MongoDB:

https://docs.adobe.com/content/help/en/experience-manager-64/deploying/introduction/aem-with-mongodb.html

 

 

Hope these help !!

Adobe Employee
May 20, 2020

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 https://docs.adobe.com/content/help/en/experience-manager-65/developing/platform/jdbc.html

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.

 

joerghoh
Adobe Employee
Adobe Employee
May 21, 2020

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).

 

HTH,

Jörg

May 21, 2020
Yes, you are correct. In a DB inside my AEM environment, I want to insert content that I get externally with an api and then query it in a JAVA class. From what you tell me if I do it this way the OAK indexes will not work for me. What do you recommend me ? Do not use the DB and directly insert the content of the external api into my AEM repository? Can I do this using Sling? Thanks for your help.