How can I apply `endsWith` filter on query?

System Information
  • Strapi Version: 3.4.0
  • Operating System:
  • Database: mongoDB
  • Node Version: 12.18
  • NPM Version:
  • Yarn Version:

How can I apply endsWith string filter on query?
I’m currently using mongoDB.

You would need a custom query for that as we don’t have a built in filter for endsWith

And probably using a regex filter

Got it Thanks :slight_smile:

How did you implement your solution @darron1217? I find the “Custom Queries” part vague. There is no clear explanation on how we should implement custom filters.

Where should I put the new custom query? In a custom service?

Yes, I implemented it on custom service.
But I’m not sure this is the best way.

1 Like

How do you extend the existing find method?

@baptisteArno in a normal API Model or one from a plugin’s model?

I created another route & controller & service for custom query. (All I need was just checking phone number, so I added new route for it)

I need to know how I can extend this method: strapi.query("restaurant").find(params, populate) or if I can’t extend it, I need its source code

There’s difference between SQL and noSQL.
SQL

const result = await strapi
  .query('restaurant')
  .model.query(qb => {
    qb.where('id', 1);
  })
  .fetch();

noSQL

const result = strapi.query('restaurant').model.find({
  date: { $gte: '2019-01-01T00.00.00Z' },
});

Yes I completely understand!

I’m talking about strapi.query("restaurant").find(params, populate) not strapi.query("restaurant").model.find(params, populate) haha it’s confusing…

I need to find the declaration of strapi.query("restaurant").find(params, populate) so that I can copy/paste it and add my custom filter

Those are core-database queries that can’t really be extended without forking the related connectors: