# Entity Service API: Populating

The Entity Service API does not populate relations, components or dynamic zones by default.

# Basic populating

To populate all the root level relations, use populate: true:

strapi.entityService('api::article.article').findMany({
  populate: true,
});

Select which data to populate by passing an array of attribute names:

strapi.entityService('api::article.article').findMany({
  populate: ['componentA', 'relationA'],
});

# Advanced populating

An object can be passed for more advanced populating:

strapi.entityService('api::article.article').findMany({
  populate: {
    componentB: true,
    dynamiczoneA: true,
    repeatableComponent: {
      fields: ['fieldA'],
      filters: {},
      sort: 'fieldA:asc',
      populate: false,
    },
  },
});

Complex populating can be achieved by using the filters parameter and select or populate nested relations or components:

strapi.entityService('api::article.article').findMany({
  populate: {
    relationA: {
      filters: {
        name: {
          $contains: 'Strapi',
        },
      },
    },

    repeatableComponent: {
      fields: ['someAttributeName'],
      orderBy: ['someAttributeName'],
      populate: {
        componentRelationA: true,
      },
    },
  },
});