Unable to Distribute Data among newly added shards

Hi all, I am new to MongoDB and I am trying to set up a Sharded MongoDB cluster. I Have configured the following clusters
Cluster 1 - 3 MongoDB Config Servers (1 Primary 2 replicas) ReplicaSets configured
Cluster 2 - 1 Mongos Node
Cluster 3 - 3 MongoDB servers (1 Primary 2 Replica) ReplicaSets Configured

Steps followed -

  1. Creating a collection.
  2. Insert 1 Million documents in the collections.
  3. Adding a new Shard and configuring the same in Mongos.
  4. Enable sharding on my database.
  5. Shard my collection using a hash-based shard key.

The data is not getting distributed between the newly added shard.

I read somewhere that chunk distribution happens when the chunk limit is reached. So I set up my chunk size as 64MB.

I entered 1 Million more documents and still, the data remains the same.

[direct: mongos] test> sh.status()
shardingVersion
{ _id: 1, clusterId: ObjectId("64ec6faa9a535bc69658da8e") }
---
shards
[
  {
    _id: 'shard1rs',
    host: 'shard1rs/host.docker.internal:50001,host.docker.internal:50002,host.docker.internal:50003',
    state: 1,
    topologyTime: Timestamp({ t: 1693216965, i: 3 })
  },
  {
    _id: 'shard2rs',
    host: 'shard2rs/host.docker.internal:50004,host.docker.internal:50005,host.docker.internal:50006',
    state: 1,
    topologyTime: Timestamp({ t: 1693217686, i: 1 })
  }
]
---
active mongoses
[ { '7.0.0': 1 } ]
---
autosplit
{ 'Currently enabled': 'yes' }
---
balancer
{ 'Currently enabled': 'yes', 'Currently running': 'no' }
---
databases
[
  {
    database: { _id: 'config', primary: 'config', partitioned: true },
    collections: {
      'config.system.sessions': {
        shardKey: { _id: 1 },
        unique: false,
        balancing: true,
        chunkMetadata: [ { shard: 'shard1rs', nChunks: 1024 } ],
        chunks: [
          'too many chunks to print, use verbose if you want to force print'
        ],
        tags: []
      }
    }
  },
  {
    database: {
      _id: 'test',
      primary: 'shard1rs',
      partitioned: false,
      version: {
        uuid: new UUID("72d1d845-9d3a-4cf1-a690-6a626c253c14"),
        timestamp: Timestamp({ t: 1693217049, i: 1 }),
        lastMod: 1
      }
    },
    collections: {
      'test.test_collection': {
        shardKey: { client: 'hashed' },
        unique: false,
        balancing: true,
        chunkMetadata: [ { shard: 'shard1rs', nChunks: 1 } ],
        chunks: [
          { min: { client: MinKey() }, max: { client: MaxKey() }, 'on shard': 'shard1rs', 'last modified': Timestamp({ t: 1, i: 0 }) }
        ],
        tags: []
      }
    }
  }
]

You’ll have to add a few more documents, then you will see some movement to the other shard.

A collection is considered balanced if the difference in data between shards (for that collection) is less than three times the configured range size for the collection. For the default range size of 128MB, two shards must have a data size difference for a given collection of at least 384MB for a migration to occur.

https://www.mongodb.com/docs/manual/core/sharding-balancer-administration/#migration-thresholds