Thanks @DMehaffy and @Pierre_Noel,
My application is so simple, it feels like overkill to implement a solution such as Algolia or Elastic Search, but will keep it in mind.
For now, I will try to implement a custom query as proposed here:
PS: With a previous project of mine, I implemented an aggregation pipeline that allowed me to retrieve a document from MongoDB, with the relational documents looked up via $lookup, ie one big flat document with all the fields resolved from all the related documents. Then I implemented a search function client-side. But this approach obviously has some drawbacks. For example, you need to retrieve all the documents from the DB, which could lead to slow API responses, plus doing the search client-side also had an impact on performance.
Anyway, let me get going on that custom query. Will provide an update later.