mongoDB $lookup with $search pipeline

I have two collections:

store_group collection:

{"_id": ObjectId("674fe7cc4e65df54a0db23b5"),
     "stores": [
      {"id": 101, "name":"abc"},  // 101 as int
      {"id": 204, "name":"cd"} // 204 as int
    ]}

location_view_for_search, a view created from stores collection:

{"_id": ObjectId("67400d3997214dc99c6311c5"),
      "location_number": "101", // 101 as String
    }
    {"_id": ObjectId("67400d3997214dc99c6311c6"),
      "location_number": "204", // 204 as String
    }

I need to lookup store data from store_group, via location_number and apply autocomplete operation on location_number. because the stores._id in store_group collection is number and location_view_for_search.location_number is string, so I first map the number to string, the do the lookup:

[
      {
        $addFields:
          {
            storeIds: {
              $map: {
                input: "$stores",
                in: {
                  $toString: "$$this.id"
                }
              }
            }
          }
      },
      {
        $lookup:
          {
            from: "store_view_for_search",
            localField: "storeIds",
            foreignField: "location_number",
            as: "store_details"
          }
      }
    ]

till now it’s all working fine, i can see the pipeline output showing the store_details correctly:

{
      "stores": [
        {"id": 101, "name": "abc"},
        {"id": 204, "name": "cd"}
      ],
      "storeIds":["101", "204"],
      "store_details": [
        {"_id": ObjectId("67400d3997214dc99c6311c5"), "location_number": "101"},
        {"_id": ObjectId("67400d3997214dc99c6311c6"), "location_number": "204"}
      ]
    }

next I added $search inside $lookup to apply autocomplete search on location_number in location_view_for_search, i’ve created the atlas search index to set static mapping on location_number to be autocomplete.

{
        $lookup:
          {
            from: "location_view_for_search",
            localField: "storeIds",
            foreignField: "location_number",
            as: "store_details",
            pipeline: [
              {
                $search: {
                  index:
                    "autocomplete-by-location-number",
                  compound: {
                    should: [
                      {
                        autocomplete: {
                          query: "572",
                          path: "location_number",
                          fuzzy: {
                            maxEdits: 1,
                            prefixLength: 3,
                            maxExpansions: 1
                          }
                        }
                      }
                    ],
                    minimumShouldMatch: 1
                  }
                }
              }
            ]
          }
      }

then all of the sudden the pipeline output showing the store_details in the result as empty array. what did i do wrong? I’m following the mongo tutorial here https://mongodb.prakticum-team.ru/docs/atlas/atlas-search/tutorial/lookup-with-search/.

I’ve also tested the same $search on location_view_for_search view, it works fine, I can search locations by autocomplete search on location_number